SYSFS Linux

от автора

в

sysfs — виртуальная файловая система в операционной системе Linux. Экспортирует в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. Впервые появилась в ядре версии 2.6. Необходимость создания была вызвана устаревшей системой работы ядра с устройствами.

Обычно, файловая система 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

Этот подкаталог содержит по одному подкаталогу на каждый модуль, загруженный в ядро. Подкаталоги называются по имени модулей. В каждом подкаталоге могут быть следующие файлы:

coresize

[Будет описано]

initsize

[Будет описано]

initstate

[Будет описано]

refcnt

[Будет описано]

srcversion

[Будет описано]

taint

[Будет описано]

uevent

[Будет описано]

version

[Будет описано]

В каждом подкаталоге могут быть следующие подкаталоги: drivers [Будет описано]

holders

[Будет описано]

notes

[Будет описано]

parameters Этот каталог содержит по одному файлу на каждый параметр модуля; в каждом файле хранится значение соответствующего параметра. Некоторые файлы доступны на запись. sections В этих подкаталогах содержатся файла с информацией о разделах модуля. Эта информацию, в основном, используется для отладки. [Будет описано]

/sys/power

[Будет описано]

Источник

https://manpages.ubuntu.com/manpages/lunar/ru/man5/sysfs.5.html

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Аватар пользователя yuliaadmin

Об авторе


Поиск по сайту


Полезные ссылки

Ссылки, которые я считаю полезными и хочу поделиться.