sysfs
100%

Устройства · Урок 4

sysfs

Узнайте, как sysfs показывает живую модель устройств, драйверов, шин и классов ядра Linux в `/sys`.

sysfs — виртуальная файловая система, обычно смонтированная в /sys. Она представляет объекты ядра и связи между ними каталогами, символическими ссылками и небольшими файлами атрибутов. Средства обнаружения и менеджеры устройств используют её для понимания текущей модели ядра.

Навигация по модели устройств

Важные представления верхнего уровня:

  • /sys/devices/: физическая и логическая иерархия;
  • /sys/class/: устройства по функциональным классам, например block или network;
  • /sys/bus/: шины, их устройства и драйверы;
  • /sys/block/: удобное представление блочных устройств;
  • /sys/dev/: ссылки по major- и minor-номерам символьных и блочных устройств.

Многие записи вне /sys/devices являются ссылками на каноническую иерархию. Получите фактический родительский путь через readlink -f:

$ readlink -f /sys/class/block/sda

На системе с другим интерфейсом хранения такого имени может не быть.

Какое поддерево sysfs содержит основную иерархию устройств ядра?

Чтение атрибутов

Файлы атрибутов предоставляют отдельные значения и элементы управления. Для блочного устройства встречаются:

$ cat /sys/class/block/sda/dev
8:0
$ cat /sys/class/block/sda/ro
0
$ cat /sys/class/block/sda/size
1953525168

dev сообщает major и minor, ro — флаг только для чтения. Для блочных устройств Linux size по соглашению выражен в 512-байтовых секторах независимо от физического сектора. Единицы и смысл конкретного атрибута сверяйте с ABI ядра.

Что обычно содержит атрибут dev блочного устройства?

Связь `/sys` и `/dev`

/dev содержит узлы, которые приложения открывают для ввода-вывода. /sys показывает связи объектов, свойства, состояние и некоторые элементы управления. Блочный /dev/sda можно сопоставить с /sys/dev/block/8:0, который разрешается в объект sysfs.

Интерфейсы дополняют друг друга. Ни один не является полностью автономной инвентаризацией, а устройство может исчезнуть во время исследования.

Какое утверждение правильно различает /sys и /dev?

Безопасная запись атрибутов

Некоторые атрибуты доступны для записи и меняют питание, привязку драйвера, очереди, авторизацию, светодиоды и другие живые элементы. Успешная текстовая запись может немедленно повлиять на оборудование или службу и не равна правке постоянной конфигурации.

Читайте документированный ABI и текущее значение, определяйте способ постоянной настройки и тестируйте только на разрешённой системе. Не меняйте рекурсивно разрешения и не записывайте угаданные значения по /sys.

Почему запись в атрибут sysfs может быть операционно значимой?

Урок завершён

Вы завершили sysfs

Теперь вы умеете использовать sysfs как структурированное представление живых объектов ядра.

  • Перемещаться по представлениям устройств, классов, шин, блоков и номеров.

  • Читать документированные атрибуты с правильными единицами.

  • Сопоставлять объекты sysfs с узлами /dev.

  • Считать записываемые атрибуты живыми интерфейсами управления.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Устройства