**101.1** Определение и настройка аппаратной части Студент должен разбираться в управлении основными комплектующими ПК. **Изучаем** : - включение и выключение устройств; - настройку системы без периферийных устройств; - устройства хранения информации; - понятие горячей замены; - определение параметров устройств; - инструменты просмотра сведений об устройствах; - инструменты управления USB; - понятия sysfs, udev, dbus. **Термины и утилиты:** - /sys/ - /proc/ - /dev/ - modprobe - lsmod - lspci - lsusb Аппаратная часть современных компьютерных устройств — это отдельный полноценный курс. В данном уроке поверхностно рассматриваются базовые манипуляции с комплектующими ПК из ОС Linux. При работе с устройствами Linux можно столкнуться со следующими понятиями: - **HAL** – демон, представляющий слой абстрагирования от конкретной АЧ, благодаря которому ОС может обращаться к устройствам через их абстрактные представления (конкретную инструкцию устройству будет передавать драйвер), на данный момент является устаревшим; - **Dbus** - шина, через которую ОС общается с HAL; - **udev** - менеджер устройств, пришедший на смену HAL. **Преимущества** **udev** : - --работает на уровне пользователя (больше свободы действий); - --событийно-управляемый (а не опрашивает ядро по расписанию как HAL); - --удобные файлы конфигурации (а не xml как у HAL); - --содержит в системе только файлы активных устройств (а не всех устройств как HAL); - --содержит имена устройств неизменными (в HAL имя зависит от порядка подключения). База данных подключенных устройств хранится в директории **/**** sys ****,** где они расположены по каталогам и именуются автоматически согласно идентификаторам, например: **/**** sys ****/**** block** - _перечень блочных устройств;_ **/**** sys ****/**** bus **** ** _- перечень шин;_ Информация о состоянии ОС и всех запущенных процессах находится в директории **/**** proc**, например: **/**** proc ****/**** cpuinfo** _- информация о процессоре;_ **/**** proc ****/**** mounts**_- подключенные файловые системы;_ В директории **/**** dev** находится информация об интерфейсах работы с драйверами ядра, например: **/**** dev ****/**** sda **** ** _- первый жесткий диск;_ **/**** dev ****/**** sr0 ** _-_ _CD-ROM__;_ Примечание: в каталоге /dev, как правило, отсутствует информация о сетевых картах и видеокартах, так как работа с ними немного сложнее чем простые операции чтения-записи. Для работы с модулями ядра (драйверами устройств) предназначены следующие команды: - **lsmod** – информация о модулях ядра; - **lspci** – информация об устройствах PCI; - **lspcmciа** – информация об устройствах PCMCIA; - **lsusb** – информация о шине USB; - **lshw** – детальная информация о комплектующих; - **rmmod ** –удалить модуль; - **insmod ** –установить модуль; - **modprobe** – установить модуль и все зависимости. Примечание: в Centos для работы lsusb нужно установить пакет usbutils, а для работы lshw пакет lshw. Процессор получает информацию от устройств при помощи прерываний (IRQ), номера которых можно увидеть в файле **/**** proc ****/**** interrupts** При этом процессор считывает и записывает информацию через адреса устройств ввода-вывода (IO). Адресация IO бывает в оперативной памяти ( **/**** proc ****/**** io ****mem** ) и по портам ( **/**** proc ****/**** ioports**).