Урок 01

Визначення та налаштування апаратної частини. Розбиратися в управлінні основними комплектуючими ПК.

Вивчаємо:

  • одержання інформації про обладнання;
  • керування пристроями;
  • поняття 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 – симулювати запуск події.

Примітка: ми не розглядаємо на цьому етапі такі просунуті дії, як створення власних правил обробки подій обладнання, проте ви можете їх вивчити.