22.1. Файловая система sysfs
Ядро Linux 2.6 внедряет файловую систему sysfs
, представляющую собой объединение файловых систем proc
, devfs
и devpty
. sysfs
представляет подключенные в системе устройства и шины в виде иерархии файловой системы, доступной из пользовательского пространства. Она имеет дело со всеми устройствами и параметрами драйверов, которые раньше располагались в /proc/
, а также включает динамическое добавление устройств, которое раньше осуществлялось devfs
.
Файловая система sysfs
подключается в /sys/
и содержит папки, в которых подключенные в системе устройства сгруппированы по разным признакам. Подкаталоги /sysfs/
включают:
-
Каталог
/devices/
Содержит папку
/css0/
. Ее подкаталоги представляют подканалы, определенные ядром Linux. Их имена имеют формат0.0.
(гдеnnnn
nnnn
— номер подканала в шестнадцатиричном виде в диапазоне от 0000 до ffff). Папки подканалов содержат статус-файлы, а также подкаталог самого устройства с названием0.0.
(гдеxxxx
xxxx
— адрес модуля устройства). Каталог/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
.