ИМЯ
sysfs -
файловая
система
для
экспортируемых
объектов
ядра
ОПИСАНИЕ
Файловая
система sysfs
— это
псевдофайловая
система,
предоставляющая
интерфейс
к
структурам
данных
ядра
(точнее,
файлы и
каталоги в
sysfs
позволяют
видеть
структуры
kobject,
определённые
внутри
ядра). Файлы
в sysfs
показывают
информацию
об
устройствах,
модулях
ядра,
файловых
системах и
других
компонентах
ядра.
Обычно,
файловая
система sysfs
монтируется
в /sys. Это
выполняется
системой
автоматически,
но также
можно
монтировать
её вручную
с помощью
команды:
mount -t sysfs sysfs /sys
Многие из
файлов
файловой
системы sysfs
доступны
только для
чтения, но
есть и
доступные
на запись,
через
которые
можно
изменять
переменные
ядра. В
целях
сокращения
избыточности
для связи
элементов
в дереве
файловой
системы
широко
применяются
символьные
ссылки.
Файлы и
каталоги
В
следующем
списке
описаны
некоторые
файлы и
каталоги в
иерархии
/sys.
- /sys/block
- В этом
подкаталоге
содержится
по одной
символьной
ссылке на
каждое
блочное
устройство,
обнаруженное
в системе.
Символьные
ссылки
указывают
на
соответствующие
каталоги в
/sys/devices.
- /sys/bus
- В этом
каталоге
содержится
по одному
подкаталогу
на каждый
тип шины
ядра.
Внутри
каждого
каталога
есть два
подкаталога:
- devices
- Этот
подкаталог
содержит
символьные
ссылки на
элементы в
/sys/devices,
которые
соответствуют
устройствам,
обнаруженным
на этой
шине.
- drivers
- Этот
подкаталог
содержит
по одному
подкаталогу
на каждый
драйвер
устройства,
загруженный
для этой
шины.
- /sys/class
- Этот
подкаталог
содержит
по одному
слою
дополнительных
подкаталогов
на каждый
класс
устройств,
зарегистрированных
в системе
(например,
терминалы,
сетевые
устройства,
блочные
устройства,
графические
устройства,
звуковые
устройства
и т. д.).
Внутри
каждого из
этих
подкаталогов
находятся
символьные
ссылки на
каждое из
устройств
этого
класса.
Данные
символьные
ссылки
указывают
на
элементы в
каталоге
/sys/devices.
- /sys/class/net
- Каждый
элемент
этого
каталога
представляет
собой
символьную
ссылку на
одно из
реальных
или
виртуальных
сетевых
устройств,
видимых в
сетевом
пространстве
имён
процесса,
обратившегося
к каталогу.
Эти
символьные
ссылки
указывают
на
элементы в
каталоге
/sys/devices.
- /sys/dev
- Этот
каталог
содержит
два
подкаталога
— block/ и char/,
соответствующие
блочным и
символьным
устройствам
в системе.
Внутри
каждого
подкаталога
находятся
символьные
ссылки с
именами в
виде
основной-ID:дополнительный-ID,
где
значения ID
соответствуют
основному
и
дополнительному
идентификаторами
определённого
устройства.
Каждая
символьная
ссылка
указывает
на каталог
sysfs для
устройства.
Таким
образом,
символьные
ссылки в /sys/dev
предоставляют
простой
способ
просмотра
интерфейса
sysfs по
идентификаторам
устройств,
возвращаемых
вызовом stat(2)
(или
подобным).
- Пример
сеанса
оболочки с
выводом
/sys/dev:
-
$ stat -c "%t %T" /dev/null
1 3
$ readlink /sys/dev/char/1\:3
../../devices/virtual/mem/null
$ ls -Fd /sys/devices/virtual/mem/null
/sys/devices/virtual/mem/null/
$ ls -d1 /sys/devices/virtual/mem/null/*
/sys/devices/virtual/mem/null/dev
/sys/devices/virtual/mem/null/power/
/sys/devices/virtual/mem/null/subsystem@
/sys/devices/virtual/mem/null/uevent
- /sys/devices
- В данном
каталоге
содержится
представление
в виде
файловой
системы
для дерева
устройств
ядра,
которое
является
иерархией
структур
device внутри
ядра.
- /sys/firmware
- В этом
подкаталоге
содержатся
интерфейсы
для
просмотра
и
изменения
объектов и
атрибутов
микропрограмм.
- /sys/fs
- В этом
каталоге
содержатся
подкаталоги
для
некоторых
файловых
систем.
Здесь
файловая
система
будет
иметь
подкаталог
только,
если она
явно
создаст
подкаталог.
- /sys/fs/cgroup
- Обычно,
этот
каталог
используется
как точка
монтирования
файловой
системы tmpfs(5),
содержащей
точки
монтирования
для
файловых
систем cgroups(7).
- /sys/fs/smackfs
- В каталоге
содержатся
файлы
настройки
SMACK LSM.
Смотрите
файл
исходного
кода ядра
Documentation/admin-guide/LSM/Smack.rst.
- /sys/hypervisor
- [Будет
описано]
- /sys/kernel
- В этом
подкаталоге
содержатся
различные
файлы и
подкаталоги,
предоставляющие
информацию
о
работающем
ядре.
- /sys/kernel/cgroup/
- Файлы
этого
каталога
описаны в
cgroups(7).
- /sys/kernel/debug/tracing
- Точка
монтирования
файловой
системы tracefs,
используемая
свойством
ядра ftrace
(информацию
по ftrace
смотрите в
файле
исходного
кода ядра
Documentation/trace/ftrace.txt).
- /sys/kernel/mm
- В этом
подкаталоге
содержатся
различные
файлы и
подкаталоги,
предоставляющие
информацию
о
подсистеме
ядра
управления
памятью.
- /sys/kernel/mm/hugepages
- Этот
подкаталог
содержит
по одному
подкаталогу
на каждый
размер
огромных
страниц
ядра,
поддерживаемых
системой. В
имени
подкаталога
показан
размер
огромной
страницы
(например,
hugepages-2048kB). Внутри
каждого
подкаталога
содержится
набор
файлов,
которые
могут быть
использованы
для
просмотра
и (в
некоторых
случаях)
изменения
настроек,
относящихся
к размеру
огромных
страниц.
Дополнительную
информацию
смотрите в
файле
исходного
кода ядра
Documentation/admin-guide/mm/hugetlbpage.rst.
- /sys/module
- Этот
подкаталог
содержит
по одному
подкаталогу
на каждый
модуль,
загруженный
в ядро.
Подкаталоги
называются
по имени
модулей. В
каждом
подкаталоге
могут быть
следующие
файлы:
- В каждом
подкаталоге
могут быть
следующие
подкаталоги:
- drivers
- [Будет
описано]
- holders
- [Будет
описано]
- notes
- [Будет
описано]
- parameters
- Этот
каталог
содержит
по одному
файлу на
каждый
параметр
модуля; в
каждом
файле
хранится
значение
соответствующего
параметра.
Некоторые
файлы
доступны
на запись.
- sections
- В этих
подкаталогах
содержатся
файла с
информацией
о разделах
модуля. Эта
информацию,
в основном,
используется
для
отладки.
- [Будет
описано]
- /sys/power
- [Будет
описано]
ВЕРСИИ
Файловая
система sysfs
впервые
появилась
в Linux 2.6.0.
СООТВЕТСТВИЕ
СТАНДАРТАМ
Файловая
система sysfs
есть
только в Linux.
ЗАМЕЧАНИЯ
Данная
справочная
страница
неполна, в
ней могут
быть
неточности
и является
одной из
страниц,
которую
требуется
обновлять
очень
часто.
СМОТРИТЕ
ТАКЖЕ
proc(5), udev(7)
P. Mochel. (2005).
Файловая
система sysfs.
Представлен
на
симпозиуме
Linux в Оттаве в
2005 году.
Файл
исходного
кода ядра
Documentation/filesystems/sysfs.txt и
другие
различные
файлы в Documentation/ABI
и Documentation/*/sysfs.txt