Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Ссылки [ править ]

  1. ^ Патрик Мочел и Майк Мерфи. "sysfs - _The_ файловая система для экспорта объектов ядра" . kernel.org .
  2. ^ SUSE. "Справочная страница sysctl" . FreeBSD. sysctl используется для изменения параметров ядра во время выполнения. Доступные параметры перечислены в / proc / sys /. Procfs требуется для поддержки sysctl в Linux. Вы можете использовать sysctl как для чтения, так и для записи данных sysctl.
  3. Торвальдс, Линус (18 октября 2002 г.). «Linux v2.5.44 - и офлайн на неделю» .
  4. Торвальдс, Линус (4 ноября 2002 г.). «Linux v2.5.46» .
  5. ^ Mochel, Патрик (17 октября 2001). «[RFC] Новая модель драйвера для 2.5» .
  6. Янсен, Тим (1 ноября 2001 г.). "Re: [ПАТЧ] 2.5 ПРЕДЛОЖЕНИЕ: Замена на тока / проц говна" .
  7. ^ "Руководство по интерфейсам 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