**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**).