середа, 22 жовтня 2008 р.

Що таке udev і з чим його їдять

В лінукс ядрах версій раніших за 2.6 використовувалась файлова система devfs, вона монтувалась за звичай в папку /dev і заповнювалась потрібними і непотрібними, існуючими і не існуючими пристроями, і це дуже загромаджувало дерикторію. Проте це була не основна біда. Пробелема була також в не зручності роботи з змінними пристроями, наприклад флешками. Кожного разу як ви підключаєте флешку ядро могло видавати різні назви для цих пристроїв в залежності наприклад до якаого розєму ви їх підключили. Такий підхід був дуже не зручний, оскільки флешки постійно треба витягати і вставляти, а оскільки кожного разу інша назва пристрою то і монтувати вручну. Для вирішення такої проблеми був створений udev.

Udev - це новий менеджер пристроїв в Linux, для ядер починаючи з 2.6. Навідміну від devfs, це є звичайнісінька програма, проте для її роботи потрібна sysfs віртуальна файлова система яка появилась тільки в версії 2.6. Що ж робить Udev? Основне його призначення це працювати з каталогом пристроїв (традиційно /dev), наприклад видаляти пристрій флешки після того як вона була вилучена, але то все залежить як написані правила для udev про які ми поговрим пізніше. Як я вже писав, програмі udev потрібна змонтована фс sysfs, так саме вона нам дає інформацію про всі пристрої в системі, і саме її udev завжди моніторить дивлячись які ж зміни відбулись, і відповідно до того виконує правила які написані до відповідних змін або наз пристроїв або любого співпадіння яке відбулось.
Але основним приколом є правила Udev. Це правила, де можна вказати як треба поступати при всяких зімнах обладнання, наприклад можна навіть при вставленні компакт диску перевіряти якшо то аудіо компакт диск читати CDDB і наприклад назву артиста чи альбому і відповідно називати змонтований пристрій, або я наприклад бачив в інтернеті скрипт спеціально шоб говрити через festival який пристрій був доданий або забраний.

Немає коментарів: