22.1. Файловая система sysfs

22.1. Файловая система sysfs

22.1. Файловая система sysfs

Ядро Linux 2.6 внедряет файловую систему sysfs, представляющую собой объединение файловых систем proc, devfs и devpty. sysfs представляет подключенные в системе устройства и шины в виде иерархии файловой системы, доступной из пользовательского пространства. Она имеет дело со всеми устройствами и параметрами драйверов, которые раньше располагались в /proc/, а также включает динамическое добавление устройств, которое раньше осуществлялось devfs.

Файловая система sysfs подключается в /sys/ и содержит папки, в которых подключенные в системе устройства сгруппированы по разным признакам. Подкаталоги /sysfs/ включают:

  1. Каталог /devices/

    Содержит папку /css0/. Ее подкаталоги представляют подканалы, определенные ядром Linux. Их имена имеют формат 0.0.nnnn (где nnnn — номер подканала в шестнадцатиричном виде в диапазоне от 0000 до ffff). Папки подканалов содержат статус-файлы, а также подкаталог самого устройства с названием 0.0.xxxx (где xxxx — адрес модуля устройства). Каталог /devices/ также содержит информацию статуса и опции конфигурации устройства.

  2. Каталог /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/).

  3. Каталог /class/

    Содержит папки сгруппированных устройств (например, tty, приводы SCSI, сетевые устройства и пр.).

  4. Каталог /block/

    Содержит папки для каждого блочного устройства, присутствующего в системе (DASD, программные устройства raid и пр.). Существенным отличием предыдущих систем Linux от тех, которые используют файловую систему sysfs, является необходимость обращения к устройствам с использованием их имен стандарта sysfs. Для образа ядра 2.4 обращение к драйверу zFCP выполняется с помощью адресов его устройств. Для ядра системы с образом ядра 2.6 этот драйвер будет адресован как 0.0.1600.