LXF115:DrBrown2
|
|
|
Файловая система-призрак
- Sysfs Загадочные файлы в каталоге /sys и их роль в поддержке udev.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Файловая система sysfs (как и procfs) – одна из тех штук, которые я обычно называю плодом воображения ядра. Точкой монтирования для нее всегда служит каталог /sys, а ее основная задача – это предоставление доступа к структурам данных ядра, в частности, топологии оборудования (шинам и устройствам) компьютера. Sysfs лежит под уровнем виртуальной файловой системы VFS (Virtual File System), чья задача состоит в отображении файлов независимо от их физической реализации.
Иерархия файловой системы sysfs очень близка к внутренней иерархии объектов ядра (kobjects), которые населяют ее. Подкаталоги верхнего уровня в /sys, такие как block, bus, devices, fs, modules и power, представляют собой основные подсистемы, зарегистрированные в sysfs.
Забравшись вовнутрь этого запутанного лабиринта директорий, вы рано или поздно достигнете файлов, представляющих атрибуты объектов ядра. Многие из них содержат простые численные значения, например, в своей системе я могу просмотреть размеры разделов диска таким образом:
$ cd /sys/block/sda $ for f in sda*/size; do echo -n $f : ; cat $f ; done sda1/size :240912 sda2/size :20971520 sda3/size :317241328 sda4/size :2 sda5/size :15647247 sda6/size :271032552
Обратите внимание, что эти эксперименты проводились на Ubuntu 8.04 с ядром версии 2.6.24. В других дистрибутивах, особенно с другой версией ядра, вывод команды будет немного отличаться от приведенного выше.
Вот другой пример: покопавшись в каталоге modules, вы найдете подкаталог parameters для каждого загруженного модуля. Каждый файл в этом каталоге определяет параметр, переданный модулю во время его загрузки. Например, параметры моего драйвера беспроводной сетевой карты таковы:
$ cd /sys/module/iwl4965/parameters $ ls antenna debug disable disable_hw_scan hwcrypto qos_enable queues_num
Чтобы узнать значение одного из этих параметров, просмотрите содержимое его файла:
$ cat queues_num 16
Узнать, что означают параметры, поможет команда modinfo:
$ modinfo iwl4965 | grep parm: parm: antenna:select antenna (1=Main, 2=Aux, default 0 [both]) (int) parm: disable:manually disable the radio (default 0 [radio on]) (int) parm: hwcrypto:using hardware crypto engine (default 0 [software]) parm: debug:debug output mask (int) parm: disable_hw_scan:disable hardware scanning (default 0) (int) parm: queues_num:number of hw queues. (int) parm: qos_enable:enable all QoS functionality (int)
Хорошо, и что с этим делать?
Одно из главных назначений /sys – предоставить информацию об оборудовании подсистеме udev, ответственной за добавление файлов устройств в каталог /dev, когда ядро находит новое оборудование. Например, если вставить USB-флэшку, ее параметры появятся в файле в каталоге /sys/bus/usb/devices. Они сравниваются с правилами, которые udev считывает из каталога /etc/udev/rules.d.
Командой udevinfo удобно «шерстить» содержимое каталога /sys в поисках параметров, пригодных для формирования правил udev. Вот фрагмент данных, относящихся к USB-флэшке:
$ udevinfo --attribute-walk--path /sys/bus/usb/devices/7-1/
Udevinfo начинает с устройства, определенного в --path, и затем прогуливается по цепочке родительских устройств. Для каждого найденного устройства выводится список всех возможных атрибутов в формате правил udev. Правило можно составить из атрибутов устройства и атрибутов одного родительского устройства.
looking at device ‘/devices/pci0000:00/0000:00:1d.7/usb7/7-1’: ATTR{manufacturer}==”SanDisk Corporation” ATTR{product}==”Cruzer Mini” ATTR{serial}==”SNDKB770F40861406506” looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb7’: KERNELS==”usb7” SUBSYSTEMS==”usb”
На основе этой информации можно легко построить правило udev, определяющее, что должно произойти, когда ядро находит это устройство. Чисто ради эксперимента я добавил такую строку в файл /etc/udev/rules.d/60-symlinks.rules:
SUBSYSTEMS==”usb”, ATTRS{product}==”Cruzer Mini”, SYMLINK+=”cruzer”
Теперь при подключении устройства udev автоматически смонтирует его (об этом позаботятся другие правила udev) и создаст символьную ссылку /dev/cruzer.