sysfs - это псевдофайловая система, предоставляемая ядром Linux, которая экспортирует информацию о различных подсистемах ядра, аппаратных устройствах и связанных драйверах устройств из модели устройства ядра в пространство пользователя через виртуальные файлы . [1] Помимо предоставления информации о различных устройствах и подсистемах ядра, экспортированные виртуальные файлы также используются для их конфигурации.
sysfs предоставляет функциональные возможности, аналогичные механизму sysctl в операционных системах BSD , с той разницей, что sysfs реализован как виртуальная файловая система, а не как специальный механизм ядра, и что в Linux параметры конфигурации sysctl доступны по адресу / proc / sys / как часть procfs , а не sysfs, смонтированного в / sys / . [2]
История [ править ]
Во время цикла разработки 2.5 была представлена модель драйвера Linux для исправления следующих недостатков версии 2.4:
- Не существовало единого метода представления отношений драйвер-устройство.
- Не было универсального механизма горячего подключения .
- procfs был забит непроцессной информацией.
Sysfs был разработан для экспорта информации, представленной в дереве устройств, которая больше не будет загромождать procfs. Его написал Патрик Мохел. [3] [4] Маниш Сони позже написал патч для резервного хранилища sysfs, чтобы уменьшить использование памяти в больших системах.
В течение следующего года разработки 2.5 инфраструктурные возможности модели драйвера и driverfs, ранее называвшиеся ddfs, начали приносить пользу другим подсистемам. [5] [6] kobject-ы были разработаны для обеспечения центрального механизма управления объектами, а driverfs был переименован в sysfs, чтобы представить агностицизм его подсистем.
Sysfs монтируется под точкой монтирования / sys . Если он не смонтирован во время инициализации, вы всегда можете смонтировать его с помощью команды: "mount -t sysfs sysfs / sys"
Поддерживаемые автобусы [ править ]
- ACPI
- Экспортирует информацию об устройствах ACPI .
- PCI
- Экспортирует информацию об устройствах PCI и PCI Express .
- PCI Express
- Экспортирует информацию об устройствах PCI Express .
- USB
- Экспортирует информацию о USB- устройствах.
- SCSI
- Экспортирует информацию об устройствах хранения , включая интерфейсы USB , PATA , SATA , SCSI , SAS и NVMe . [7]
- Автобусы S / 390
- Поскольку архитектура S / 390 содержит устройства, нигде больше не встречающиеся, были созданы специальные шины:
- css : содержит субканалы (в настоящее время предоставляется единственный драйвер для субканалов ввода / вывода).
- ccw : содержит устройства, подключенные к каналу (управляемые CCW ).
- ccwgroup : Искусственные устройства, созданные пользователем и состоящие из устройств ccw. Заменяет некоторые функциональные возможности 2.4 chandev.
- iucv : Искусственные устройства, такие как устройства netiucv, которые используют интерфейс IUCV виртуальной машины .
Sysfs и пользовательское пространство [ править ]
Sysfs используется несколькими утилитами для доступа к информации об оборудовании и его драйверах ( модулях ядра ), таких как udev или HAL . Сценарии были написаны для доступа к информации, ранее полученной с помощью procfs , а некоторые сценарии настраивают драйверы устройств и устройства с помощью их атрибутов.
См. Также [ править ]
- procfs
- configfs
- tmpfs
- sysctl , альтернативный способ экспорта конфигурации, используемый в системах BSD
Ссылки [ править ]
- ^ Патрик Мочел и Майк Мерфи. "sysfs - _The_ файловая система для экспорта объектов ядра" . kernel.org .
- ^ SUSE. "Справочная страница sysctl" . FreeBSD.
sysctl используется для изменения параметров ядра во время выполнения.
Доступные параметры перечислены в / proc / sys /.
Procfs требуется для поддержки sysctl в Linux.
Вы можете использовать sysctl как для чтения, так и для записи данных sysctl.
- ↑ Торвальдс, Линус (18 октября 2002 г.). «Linux v2.5.44 - и офлайн на неделю» .
- ↑ Торвальдс, Линус (4 ноября 2002 г.). «Linux v2.5.46» .
- ^ Mochel, Патрик (17 октября 2001). «[RFC] Новая модель драйвера для 2.5» .
- ↑ Янсен, Тим (1 ноября 2001 г.). "Re: [ПАТЧ] 2.5 ПРЕДЛОЖЕНИЕ: Замена на тока / проц говна" .
- ^ "Руководство по интерфейсам SCSI - Документация ядра Linux" . www.kernel.org . Проверено 13 ноября 2020 .
Внешние ссылки [ править ]
- Обзор модели драйвера от переноса LWN на серию 2.6
- kobjects и sysfs из LWN, портированного на серию 2.6
- Ramfs
- Файловая система sysfs, OLS'05
- Documentation / filesystems / sysfs.txt документация ядра Linux для sysfs