##### 101.1 Определение и настройка аппаратной части Студент должен разбираться в управлении основными комплектующими ПК. **Изучаем:** • включение и выключение устройств; • настройку системы без периферийных устройств; • устройства хранения информации; • понятие горячей замены; • определение параметров устройств; • инструменты просмотра сведений об устройствах; • инструменты управления USB; • понятия sysfs, udev, dbus. **Термины и утилиты:** • /sys/ • /proc/ • /dev/ • modprobe • lsmod • lspci • lsusb Аппаратная часть современных компьютерных устройств — это отдельный полноценный курс. В данном уроке поверхностно рассматриваются базовые манипуляции с комплектующими ПК из ОС 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** – симулировать запуск события. _Примечание: мы не рассматриваем на данном этапе такие продвинутые действия, как создания собственных правил обработки событий оборудования, тем не менее вы сам можете их изучить._