Sysfs

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

sysfs — виртуальная файловая система в операционной системе GNU/Linux. Экспортирует в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. Впервые появилась в ядре версии 2.6. Необходимость создания была вызвана устаревшей системой работы ядра с устройствами.

Структура sysfs выражает соотношения структур данных ядра. Названия подкаталогов /sys говорят сами за себя:

  • devices/ — полностью соответствует внутреннему дереву устройств ядра, а символические ссылки в подкаталогах (когда они есть, разумеется) указывают на шину устройства, принадлежность его к определённому классу, соответствующий загруженный драйвер и т. п. Дерево может быть достаточно сложным и отражает связь между устройствами;
  • bus/ — представляет собой перечень шин, зарегистрированных в ядре. Каталог каждой шины содержит подкаталоги devices/ и drivers/. Причём, devices/ — это символьные ссылки на каталоги всех устройств, описанных в системе (реально расположенных в /sys/devices/…);
  • drivers/ — каталоги драйверов, загруженных для устройств, присутствующих на данной шине. Каждый такой каталог содержит, как минимум, пару файлов-атрибутов bind и unbind, предназначенных для управления драйвером, а когда драйвер обнаруживает «своё» устройство, то в каталоге появляется символьная ссылка на каталог этого устройства.
  • block/ содержит каталоги всех блочных устройств, присутствующих в настоящее время в системе. В данном случае под устройством понимается совокупность физического устройства и драйвера. То есть, если при подключении USB-драйва некоторое новое устройство в /sys/devices/ появится всегда (можно говорить о наличии физического устройства), то появление каталога /sys/block/sda зависит ещё и от наличия в памяти необходимых драйверов (usb-storage, sd_mod и т. д. — включая все драйвера, необходимые для поддержки usb);
  • class/ — отражает группировку устройств в классы. Всякое подключенное устройство создаст новый подкаталог в дереве /sys/class. Как и в предыдущем случае, подразумевается наличие и устройства, и его драйвера;

остальные каталоги могут быть очень полезны. Так, в module/ можно узнать атрибуты, а в некоторых случаях даже изменить параметры загруженных модулей. Через файлы power/ осуществляется перевод системы в suspend, но к определению оборудования содержимое остальных каталогов отношения уже не имеет.

Более детальную информацию об особенностях модели драйверов при желании можно найти в файлах каталога /usr/src/linux/Documentation/driver-model. Обширной, однако, её пока не назовёшь. Да и вообще, нельзя сказать, что информация в /sys предназначена для «простых пользователей». Sysfs используется утилитами, такими, как udev и HAL, снабжая их информацией об устройствах и драйверах. Модифицируя атрибуты устройств и драйверов, udev и HAL теперь могут даже изменять конфигурацию последних.

Ссылки

en:Sysfs es:Sysfs fr:Sysfs ja:Sysfs zh:Sysfs

Источник — «http://www.sbup.com/wiki/Sysfs»
Личные инструменты

Served in 0.041 secs.