sysfs — виртуальная файловая система в операционной системе Linux. Экспортирует в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. Впервые появилась в ядре версии 2.6. Необходимость создания была вызвана устаревшей системой работы ядра с устройствами.
Обычно, файловая система sysfs монтируется в /sys. Это выполняется системой автоматически, но также можно монтировать её вручную с помощью команды:
mount -t sysfs sysfs /sys
Многие из файлов файловой системы sysfs доступны только для чтения, но есть и доступные на запись, через которые можно изменять переменные ядра. В целях сокращения избыточности для связи элементов в дереве файловой системы широко применяются символьные ссылки.
Файлы и каталоги
В следующем списке описаны некоторые файлы и каталоги в иерархии /sys.
В этом подкаталоге содержится по одной символьной ссылке на каждое блочное устройство, обнаруженное в системе. Символьные ссылки указывают на соответствующие каталоги в /sys/devices.
В этом каталоге содержится по одному подкаталогу на каждый тип шины ядра. Внутри каждого каталога есть два подкаталога:
devices
Этот подкаталог содержит символьные ссылки на элементы в /sys/devices, которые соответствуют устройствам, обнаруженным на этой шине.
drivers
Этот подкаталог содержит по одному подкаталогу на каждый драйвер устройства, загруженный для этой шины.
Этот подкаталог содержит по одному слою дополнительных подкаталогов на каждый класс устройств, зарегистрированных в системе (например, терминалы, сетевые устройства, блочные устройства, графические устройства, звуковые устройства и т. д.). Внутри каждого из этих подкаталогов находятся символьные ссылки на каждое из устройств этого класса. Данные символьные ссылки указывают на элементы в каталоге /sys/devices.
Каждый элемент этого каталога представляет собой символьную ссылку на одно из реальных или виртуальных сетевых устройств, видимых в сетевом пространстве имён процесса, обратившегося к каталогу. Эти символьные ссылки указывают на элементы в каталоге /sys/devices.
Этот каталог содержит два подкаталога — 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
В данном каталоге содержится представление в виде файловой системы для дерева устройств ядра, которое является иерархией структур device внутри ядра.
В этом подкаталоге содержатся интерфейсы для просмотра и изменения объектов и атрибутов микропрограмм.
В этом каталоге содержатся подкаталоги для некоторых файловых систем. Здесь файловая система будет иметь подкаталог только, если она явно создаст подкаталог.
Обычно, этот каталог используется как точка монтирования файловой системы tmpfs(5), содержащей точки монтирования для файловых систем cgroups(7).
/sys/fs/smackfs
В каталоге содержатся файлы настройки SMACK LSM. Смотрите файл исходного кода ядра Documentation/admin-guide/LSM/Smack.rst.
[Будет описано]
В этом подкаталоге содержатся различные файлы и подкаталоги, предоставляющие информацию о работающем ядре.
Файлы этого каталога описаны в cgroups(7).
/sys/kernel/debug/tracing
Точка монтирования файловой системы tracefs, используемая свойством ядра ftrace (информацию по ftrace смотрите в файле исходного кода ядра Documentation/trace/ftrace.txt).
В этом подкаталоге содержатся различные файлы и подкаталоги, предоставляющие информацию о подсистеме ядра управления памятью.
Этот подкаталог содержит по одному подкаталогу на каждый размер огромных страниц ядра, поддерживаемых системой. В имени подкаталога показан размер огромной страницы (например, hugepages-2048kB). Внутри каждого подкаталога содержится набор файлов, которые могут быть использованы для просмотра и (в некоторых случаях) изменения настроек, относящихся к размеру огромных страниц. Дополнительную информацию смотрите в файле исходного кода ядра Documentation/admin-guide/mm/hugetlbpage.rst.
Этот подкаталог содержит по одному подкаталогу на каждый модуль, загруженный в ядро. Подкаталоги называются по имени модулей. В каждом подкаталоге могут быть следующие файлы:
coresize
[Будет описано]
initsize
[Будет описано]
initstate
[Будет описано]
refcnt
[Будет описано]
srcversion
[Будет описано]
taint
[Будет описано]
uevent
[Будет описано]
version
[Будет описано]
В каждом подкаталоге могут быть следующие подкаталоги: drivers [Будет описано]
holders
[Будет описано]
notes
[Будет описано]
parameters Этот каталог содержит по одному файлу на каждый параметр модуля; в каждом файле хранится значение соответствующего параметра. Некоторые файлы доступны на запись. sections В этих подкаталогах содержатся файла с информацией о разделах модуля. Эта информацию, в основном, используется для отладки. [Будет описано]
[Будет описано]
Источник
https://manpages.ubuntu.com/manpages/lunar/ru/man5/sysfs.5.html
Добавить комментарий