Диспетчер пристроїв udev

Матеріал з Wiki TNEU
Версія від 19:41, 6 грудня 2012; Nataliag (Обговорення)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Udev


Udev є диспетчер пристроїв для Linux ядра . Насамперед, він керує пристроїв в / Dev . Він є наступником DevFS і автовизначення, яка означає, що він обробляє / розробника каталог і всі простір користувача дій при додаванні / видаленні пристроїв, включаючи прошивку навантаження


Історія

Udev було нового в Linux 2.5. Версія Linux ядра 2.6.13 введені або оновлені нової версії uevent інтерфейс. Системи з допомогою нової версії Udev не буде завантажуватися з ядрами старіше ніж 2.6.13, якщо Udev відключається, і традиційні / розробника каталог використовується для доступу до пристрою.


Огляд

На відміну від традиційних Unix- систем, де файли пристроїв в / Dev каталогів були статичного набору файлів, пристрій Linux Udev менеджер динамічно забезпечує тільки вузли для пристроїв, які фактично знаходяться в системі. Хоча DevFS використовується для забезпечення аналогічної функціональності, прихильники Udev навів ряд причин [1] для воліючи її реалізації протягом DevFS: Udev підтримує постійне іменування пристроїв, яка не залежить від, наприклад, порядок, в якому пристрої підключені до системи. Установки за замовчуванням Udev забезпечує постійне імена для пристроїв зберігання даних. Будь жорсткий диск визнається його унікальний ідентифікатор файлової системи, ім'я диска і фізичне розташування на обладнання, яке він підключений. Udev виконує повністю в просторі користувача , на відміну від DevFS ' простору ядра . Одним з наслідків цього є те, що Udev переїхав політику іменування з ядра і можете запускати довільні програми писати ім'я пристрою з властивостей пристрою, перш ніж вузол буде створений.


операція

Udev це загальний диспетчері пристроїв ядра. Він запускається як демон на Linux системи і слухає (через NetLink гніздо) для uevents ядро посилає, якщо новий пристрій инициализируется або пристрій видаляється з системи. Система надає набір правил, матч проти експортувала значення події та властивості виявленого пристрою. Відповідні правила, можливо, ім'я і створити вузол пристрою і запустити налаштовані програми установки та налаштування пристрою. Udev правила можуть зрівнятися за властивостями, як підсистеми ядра, ім'я пристрою ядра, фізичне місце розташування пристрою, або властивості, такі як серійний номер пристрою. Правила можуть також запросити інформацію із зовнішніх програм, щоб назвати пристрій або вкажіть довільне ім'я, яке завжди буде однаковою, незалежно від порядку пристроїв виявлених в системі. У минулому звичайний спосіб використання Udev на Linux системах, щоб відправити подій через сокет HAL , який буде виконувати подальші пристрої конкретних дій. Наприклад, HAL буде повідомляти інші програми, встановлені в системі, що нове обладнання прибутку за рахунок випуску широкомовне повідомлення про D-Bus IPC системи для всіх зацікавлених процесів . Таким чином, настільних ПК, таких як GNOME або KDE може відкрити файл браузера, щоб знову додається USB флеш-накопичувачі і карти пам'яті SD . [2] До середини 2011 року HAL були застарілими більшість дистрибутивів Linux, а також KDE, GNOME [3] і XFCE [4] оточення робочого столу, серед інших. Функціональність раніше втілені в HAL була інтегрована в Udev себе, або винесена в окремий програми, такі як udisks і upower .


Архітектура

Система розділена на три частини: Бібліотека libudev, що дозволяє отримати доступ до інформації про пристрій. Udevd демон, у просторі користувача, який керує віртуальної / Dev. Адміністративних udevadm команди для діагностики. Система отримує дзвінки від ядра через NetLink сокет. Більш ранні версії використовували автовизначення , додавши посилання на себе в / і т.д. / hotplug.d / за замовчуванням з цією метою.


Udev — менеджер пристроїв для нових версій ядра Linux. Його основне завдання — обслуговування файлів пристроїв у теці /dev і обробка всіх дій, які виконуються в просторі користувача при додаванні/відключенні зовнішніх пристроїв, включаючи завантаження firmware. Завдяки udev, в каталозі /dev містяться файли тільки тих пристроїв, які зараз підключені до системи. Кожен пристрій має свій відповідний файл. Якщо пристрій відключається від системи, то його файл вилучається. Вміст каталогу /dev зберігається на віртуальній файловій системі і всі файли, що перебувають в ньому, створюються при кожному запуску системи. Модифіковані або створені вручну файли не зберігаються після перезавантаження. Файли і теки, які необхідно зберегти або які завжди повинні бути присутніми в каталозі /dev, незалежно від стану пристрою, необхідно поміщати в каталог /lib/udev/devices. При запуску системи вміст цього каталогу копіюється в /dev як є (з тими ж правами доступу). Таким чином, на відміну від традиційної для Unix схеми управління каталогом /dev, де його вміст був статичним набором файлів, udev забезпечує динамічне управління пристроями, котрі дійсно перебувають у системі. Хоча раніше подібна функціональність забезпечувалася devfs, прихильники udev відзначають такі переваги свого рішення:  udev підтримує незмінне іменування пристроїв, не залежне, наприклад, від порядку включення пристроїв в систему. Конфігурація за замовчуванням забезпечує незмінне іменування для накопичувачів: тверді диски ідентифікуються за унікальним ідентифікатором файлової системи, іменем диска і розташуванням пристрою, до якого підключений диск.  udev працює цілком у просторі користувача. Це призводить, зокрема, до того, що udev може виконувати довільні програми для укладання назви пристрою або його ініціалізації. Принцип роботи. udev запускається як демон і приймає через сокет netlink події uevents від ядра, які генеруються при ініціалізації або вилученні пристрою з системи. Запрограмованих користувачем (системою) правила звіряються з властивостями події та відповідного пристрою, і правило, що збіглося, (яких може бути кілька) може назвати і створити відповідний файл пристроїв, а також виконати інші програми для ініціалізації і конфігурації пристрою. Наприклад, таким чином можна реалізувати автоматичне монтування зовнішніх накопичувачів при їхньому підключенні. Правила можуть звірятися з таким властивостям, як конкретна ядерна підсистема, ім'я пристрою в ядрі, фізичне розташування пристрою, або за серійним номером пристрою. Правила також можуть запитувати інформацію за допомогою інших програм або вказати, що ім'я пристрою завжди буде одним і тим же, незалежно від порядку виявлення пристроїв системою. Типовий спосіб використання udev на Linux-системі — дозволити посилати події HAL або DeviceKit, щоб вони виробили подальші залежні від пристроїв дії. Наприклад, HAL/DeviceKit може повідомити інші програми про новий пристрій за допомогою широкомовного повідомлення в D-Bus. Таким чином, робочі середовища типу GNOME або KDE можуть автоматично змонтувати USB-накопичувач і відкрити файловий менеджер для перегляду його вмісту. Архітектура. udev розділений на три частини:  Бібліотека libudev, що дозволяє отримувати доступ до інформації про пристрої  Демон udevd, що працює у просторі користувача та керує вмістом /dev  Програма udevadm для налагодження та діагностики. udev отримує події від ядра через netlink-сокет. Ранні версії використовували hotplug, додаючи в /etc/hotplug.d/default.

Автори

Udev був розроблений Грег Кроу-Хартман і Кей Сіверс , з великою допомогою від Дена Стеклова та інші.


літератури

^ Грег Кроу-Хартман . "Udev і DevFS - останнє слово" ( Простий текст . Перевірено 2008-01-24. ^ "Динамічне керування пристроями в Udev" . Linux Magazine. . Перевірено 2008-07-14. ^ "HALRemoval" . . Перевірено 2011-09-13. ^ "Thunar-volman і старіння HAL в Xfce" . . Перевірено 2011-09-13.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти