22.1. Файловая система sysfs
Ядро Linux 2.6 внедряет файловую систему sysfs, представляющую собой объединение файловых систем proc, devfs и devpty. sysfs представляет подключенные в системе устройства и шины в виде иерархии файловой системы, доступной из пользовательского пространства. Она имеет дело со всеми устройствами и параметрами драйверов, которые раньше располагались в /proc/, а также включает динамическое добавление устройств, которое раньше осуществлялось devfs.
Файловая система sysfs подключается в /sys/ и содержит папки, в которых подключенные в системе устройства сгруппированы по разным признакам. Подкаталоги /sysfs/ включают:
-
Каталог
/devices/Содержит папку
/css0/. Ее подкаталоги представляют подканалы, определенные ядром Linux. Их имена имеют формат0.0.(гдеnnnnnnnn— номер подканала в шестнадцатиричном виде в диапазоне от 0000 до ffff). Папки подканалов содержат статус-файлы, а также подкаталог самого устройства с названием0.0.(гдеxxxxxxxx— адрес модуля устройства). Каталог/devices/также содержит информацию статуса и опции конфигурации устройства. -
Каталог
/bus/Содержит каталог
/ccw/и/ccwgroup/. Устройства CCW доступны с помощью команд каналов. Устройства в папке/ccw/используют только один подканал в основной подсистеме каналов. Групповые устройства CCW также доступны с помощью команд каналов, но их отличие в том, что они используют не одно, а несколько подканалов для каждого устройства. Например, устройство 3390-3 DASD использует один подканал, в то время как сетевое подключение QDIP адаптера OSA использует три подканала. Оба каталога,/ccw/и/ccwgroup/, содержат папки "devices" и "drivers":Папка
/devices/содержит ссылку к папкам устройств в каталоге/sys/devices/css0/.Папка
/drivers/содержит каталоги для всех драйверов устройств, загруженных в систему. Здесь можно найти каталоги сопоставленных устройствам драйверов (например,dasd,console,qeth,zfcp). Папка/driver/содержит настройки драйверов устройств, а также символические ссылки на используемые устройства (в каталоге/sys/devices/css0/). -
Каталог
/class/Содержит папки сгруппированных устройств (например, tty, приводы SCSI, сетевые устройства и пр.).
-
Каталог
/block/Содержит папки для каждого блочного устройства, присутствующего в системе (DASD, программные устройства raid и пр.). Существенным отличием предыдущих систем Linux от тех, которые используют файловую систему
sysfs, является необходимость обращения к устройствам с использованием их имен стандартаsysfs. Для образа ядра 2.4 обращение к драйверуzFCPвыполняется с помощью адресов его устройств. Для ядра системы с образом ядра 2.6 этот драйвер будет адресован как0.0.1600.
