sysfs
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 начали приносить пользу другим подсистемам. [ 5 ] [ 6 ] kobjects были разработаны для обеспечения центрального механизма управления объектами, а driverfs был переименован в sysfs, чтобы отразить агностицизм его подсистемы.
Sysfs монтируется под /sys точка монтирования. Если он не смонтирован автоматически во время инициализации, его можно смонтировать вручную с помощью команды mount
команда: mount -t sysfs sysfs /sys
. [ 1 ]
Поддерживаемые автобусы
[ редактировать ]- ACPI
- Экспортирует информацию об ACPI . устройствах
- PCI
- Экспортирует информацию об устройствах PCI и PCI Express .
- PCI Экспресс
- Экспортирует информацию об устройствах PCI Express .
- USB
- Экспортирует информацию о USB- устройствах.
- SCSI
- Экспортирует информацию об устройствах хранения данных , включая USB , SATA и NVMe . интерфейсы [ 7 ]
- Автобусы S/390
- Поскольку архитектура S/390 содержит устройства, которых нет больше нигде, были созданы специальные шины:
- css : Содержит подканалы (в настоящее время доступен только драйвер для подканалов ввода-вывода).
- ccw : Содержит подключенные к каналу устройства (управляемые CCW ).
- ccwgroup : искусственные устройства, созданные пользователем и состоящие из устройств ccw. Заменяет некоторые функции Chandev 2.4.
- iucv виртуальной машины : искусственные устройства, такие как устройства netiucv, которые используют интерфейс IUCV .
Sysfs и пользовательское пространство
[ редактировать ]Sysfs используется несколькими утилитами для доступа к информации об оборудовании и его драйверах ( модулях ядра ), таких как udev или HAL . Были написаны сценарии для доступа к информации, ранее полученной через procfs , а некоторые сценарии настраивают драйверы устройств и устройства через их атрибуты.
См. также
[ редактировать ]- прокфс
- конфигфс
- tmpfs
- sysctl , альтернативный способ экспорта конфигурации, используемый в системах BSD.
Ссылки
[ редактировать ]- ^ Jump up to: а б Патрик Мочел и Майк Мерфи. «sysfs — файловая система для экспорта объектов ядра» . ядро.орг .
- ^ СУЗЕ. «Справочная страница sysctl» . FreeBSD.
sysctl используется для изменения параметров ядра во время выполнения. Доступные параметры перечислены в /proc/sys/. Procfs необходим для поддержки sysctl в Linux. Вы можете использовать sysctl как для чтения, так и для записи данных sysctl.
- ^ Торвальдс, Линус (18 октября 2002 г.). «Linux v2.5.44 — и офлайн на неделю» .
- ^ Торвальдс, Линус (4 ноября 2002 г.). «Линукс v2.5.46» .
- ^ Мочел, Патрик (17 октября 2001 г.). «[RFC] Новая модель драйвера для версии 2.5» .
- ^ Янсен, Тим (1 ноября 2001 г.). "Re:[ПАТЧ]2.5 ПРЕДЛОЖЕНИЕ: Замена текущего /прока говна" .
- ^ «Руководство по интерфейсам SCSI — документация по ядру Linux» . www.kernel.org . Проверено 13 ноября 2020 г.