Skip to content

Latest commit

 

History

History
67 lines (57 loc) · 6.03 KB

101_1.md

File metadata and controls

67 lines (57 loc) · 6.03 KB
101.1 Определение и настройка аппаратной части

Студент должен разбираться в управлении основными комплектующими ПК. Изучаем: • получение информации об оборудовании; • управление устройствами; • понятия sysfs, udev, dbus, udevadm.

Термины и утилиты: • /sys/ • /proc/ • /dev/ • modprobe • lsmod • lspci • lsusb • udevadm

Аппаратная часть современных компьютерных устройств — это отдельный полноценный курс. В данном уроке поверхностно рассматриваются базовые манипуляции с комплектующими ПК из ОС Linux.

При работе с устройствами Linux можно столкнуться со следующими понятиями: • HAL – демон, представляющий слой абстрагирования от конкретной АЧ, благодаря которому ОС может обращаться к устройствам через их абстрактные представления (конкретную инструкцию устройству будет передавать драйвер), на данный момент является устаревшим; • Dbus - шина, через которую процессы обмениваются информацией, в частности приложения получают через нее информацию об оборудовании из ядра; • udev - менеджер устройств, пришедший на смену HAL.

Преимущества udev:

  • работает на уровне пользователя (больше свободы действий);
  • событийно-управляемый (а не опрашивает ядро по расписанию как HAL);
  • удобные файлы конфигурации (а не xml как у HAL);
  • содержит в системе только файлы активных устройств (а не всех устройств как HAL);
  • содержит имена устройств неизменными (в HAL имя зависит от порядка подключения).

В директории /dev находится информация об интерфейсах работы с драйверами ядра, например: /dev/sda - первый жесткий диск; /dev/sr0 - CD-ROM; Примечание: в каталоге /dev, как правило, отсутствует информация о сетевых картах и видеокартах, так как работа с ними немного сложнее чем простые операции чтения-записи. В /dev лежат специальные файлы устройств, которые можно считать указателями на драйверы. При помощи этих файлов происходит обращение к устройствам.

База данных подключенных устройств хранится в директории /sys, где они расположены по каталогам и именуются автоматически согласно идентификаторам, например: /sys/block - перечень блочных устройств; /sys/bus - перечень шин; Если /dev содержит файлы устройств для работы с приложениями, то /sys содержит информацию об этих устройствах. Метафора: /sys это упаковка, а /dev – содержимое.

Информация о состоянии ОС и всех запущенных процессах находится в директории /proc, например: /proc/cpuinfo - информация о процессоре; /proc/mounts - подключенные файловые системы; Самая интересная директория - /proc/sys, так как она не только содержит информацию о системе, но и позволяет ее редактировать «на лету».


Для работы с модулями ядра, например, с драйверами устройств, предназначены следующие команды: • lsmod – информация о модулях ядра; • lspci – информация об устройствах PCI; • lspcmciа – информация об устройствах PCMCIA; • lsusb – информация о шине USB; • rmmod – удалить модуль; • insmod – установить модуль; • modprobe – деликатно выполнить действия с модулем.

Отдельного внимания заслуживает инструменты работы с udev – udevadm, который может запускаться со следующими опциями: • info – получение информации из БД; • trigger – запросить события для устройства; • settle – дождаться завершения обработки; • control – управление демоном; • monitor – следить за событиями; • test – симулировать запуск события. Примечание: мы не рассматриваем на данном этапе такие продвинутые действия, как создания собственных правил обработки событий оборудования, тем не менее вы сам можете их изучить.