udev — для нових версій ядра Linux, що є наступником і . Його основне завдання — обслуговування файлів пристроїв (англ. device nodes) у теці /dev
і обробка всіх дій, які виконуються в просторі користувача при додаванні/відключенні зовнішніх пристроїв, включаючи завантаження firmware.
Тип | |
---|---|
Розробники | та Kay Sievers |
Перший випуск | листопада 2003 |
Стабільний випуск | 204 (9 травня 2013 ) |
Операційна система | ядро Linux |
Мова програмування | С |
Ліцензія | GPL v2 |
Репозиторій | github.com/systemd/systemd |
Вебсайт | www.freedesktop.org/software/systemd/libudev/ |
Історія
udev з'явився у ядрі Linux 2.5.
Ядро Linux версії 2.6.13 увело або оновило нову версію інтерфейсу . Системи, що використовували нову версію udev, не завантажувалися з ядрами, старішими за 2.6.13 без заборони udev і з використанням традиційної теки /dev
для доступу до пристроїв.
У квітні 2012 сирцеве дерево udev було об'єднано з systemd. Всі функції обслуговування пристроїв у теці/dev
та обробка операцій підключення і відключення зовнішніх пристроїв, які раніше виконувала підсистема udev, відтепер будуть безпосередньо інтегровані в системний менеджер systemd.
Для дистрибутивів, які не бажають використовувати systemd, буде забезпечена можливість використання і складання udev, незалежно від інших частин systemd. Можливість відокремленого використання udev заявлена як офіційно підтримувана функція. Побоювання того, що в майбутньому udev неможливо буде використовувати без systemd, необґрунтовані, оскільки відокремлений udev необхідний для формування образів initrd, не містять компонентів systemd. Цілісність libudev API і сумісність udev зі складу systemd з іншими системами ініціалізації буде збережена протягом тривалого часу.
Таким чином, інтеграція udev і systemd в основному призведе до спрощення процесу розробки обох проектів, які багато в чому взаємозалежні і розвиваються по суті однією командою розробників. Злиття дозволить уникнути дублювання коду і скоротить число залежностей при збірці. Для дистрибутивів всі зміни зведуться до того, що для складання udev доведеться використовувати архів з кодом systemd, а не окремий архів udev. Після злиття systemd продовжить нумерацію версій udev, тобто після 45 випуску відразу буде представлена версія 184.
Опис
Завдяки 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
.
Примітки
- Sievers, Kay, Commit importing udev into systemd, systemd, архів оригіналу за 8 липня 2012, процитовано 25 травня 2012
- Принято решение о слиянии проектов udev и systemd [ 3 травня 2012 у Wayback Machine.](рос.)
- . Архів оригіналу за 9 липня 2011. Процитовано 4 червня 2012.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
- udev sources code [ 12 листопада 2020 у Wayback Machine.]
- Discussion of udev rules [ 16 січня 2022 у Wayback Machine.]
- udev — A Userspace Implementation of devfs by Greg Kroah-Hartman [ 17 травня 2012 у Wayback Machine.]
- PySDM (Storage Device Manager and udev rule writer) [ 19 травня 2012 у Wayback Machine.]
- LWN article about devtmpfs [ 4 травня 2012 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
udev dlya novih versij yadra Linux sho ye nastupnikom i Jogo osnovne zavdannya obslugovuvannya fajliv pristroyiv angl device nodes u teci dev i obrobka vsih dij yaki vikonuyutsya v prostori koristuvacha pri dodavanni vidklyuchenni zovnishnih pristroyiv vklyuchayuchi zavantazhennya firmware udevTipRozrobnikita Kay SieversPershij vipusklistopada 2003Stabilnij vipusk204 9 travnya 2013 11 rokiv tomu 2013 05 09 Operacijna sistemayadro LinuxMova programuvannyaSLicenziyaGPL v2Repozitorijgithub com systemd systemdVebsajtwww freedesktop org software systemd libudev Istoriyaudev z yavivsya u yadri Linux 2 5 Yadro Linux versiyi 2 6 13 uvelo abo onovilo novu versiyu interfejsu Sistemi sho vikoristovuvali novu versiyu udev ne zavantazhuvalisya z yadrami starishimi za 2 6 13 bez zaboroni udev i z vikoristannyam tradicijnoyi teki dev dlya dostupu do pristroyiv U kvitni 2012 sirceve derevo udev bulo ob yednano z systemd Vsi funkciyi obslugovuvannya pristroyiv u teci dev ta obrobka operacij pidklyuchennya i vidklyuchennya zovnishnih pristroyiv yaki ranishe vikonuvala pidsistema udev vidteper budut bezposeredno integrovani v sistemnij menedzher systemd Dlya distributiviv yaki ne bazhayut vikoristovuvati systemd bude zabezpechena mozhlivist vikoristannya i skladannya udev nezalezhno vid inshih chastin systemd Mozhlivist vidokremlenogo vikoristannya udev zayavlena yak oficijno pidtrimuvana funkciya Poboyuvannya togo sho v majbutnomu udev nemozhlivo bude vikoristovuvati bez systemd neobgruntovani oskilki vidokremlenij udev neobhidnij dlya formuvannya obraziv initrd ne mistyat komponentiv systemd Cilisnist libudev API i sumisnist udev zi skladu systemd z inshimi sistemami inicializaciyi bude zberezhena protyagom trivalogo chasu Takim chinom integraciya udev i systemd v osnovnomu prizvede do sproshennya procesu rozrobki oboh proektiv yaki bagato v chomu vzayemozalezhni i rozvivayutsya po suti odniyeyu komandoyu rozrobnikiv Zlittya dozvolit uniknuti dublyuvannya kodu i skorotit chislo zalezhnostej pri zbirci Dlya distributiviv vsi zmini zvedutsya do togo sho dlya skladannya udev dovedetsya vikoristovuvati arhiv z kodom systemd a ne okremij arhiv udev Pislya zlittya systemd prodovzhit numeraciyu versij udev tobto pislya 45 vipusku vidrazu bude predstavlena versiya 184 OpisZavdyaki udev v katalozi dev mistyatsya fajli tilki tih pristroyiv yaki zaraz pidklyucheni do sistemi Kozhen pristrij maye svij vidpovidnij fajl Yaksho pristrij vidklyuchayetsya vid sistemi to jogo fajl viluchayetsya Vmist katalogu dev zberigayetsya na virtualnij fajlovij sistemi i vsi fajli sho perebuvayut v nomu stvoryuyutsya pri kozhnomu zapusku sistemi Modifikovani abo stvoreni vruchnu fajli ne zberigayutsya pislya perezavantazhennya Fajli i teki yaki neobhidno zberegti abo yaki zavzhdi povinni buti prisutnimi v katalozi dev nezalezhno vid stanu pristroyu neobhidno pomishati v katalog lib udev devices Pri zapusku sistemi vmist cogo katalogu kopiyuyetsya v dev yak ye z timi zh pravami dostupu Takim chinom na vidminu vid tradicijnoyi dlya Unix shemi upravlinnya katalogom dev de jogo vmist buv statichnim naborom fajliv udev zabezpechuye dinamichne upravlinnya pristroyami kotri dijsno perebuvayut u sistemi Hocha ranishe podibna funkcionalnist zabezpechuvalasya devfs prihilniki udev vidznachayut taki perevagi svogo rishennya udev pidtrimuye nezminne imenuvannya pristroyiv ne zalezhne napriklad vid poryadku vklyuchennya pristroyiv v sistemu Konfiguraciya za umovchannyam zabezpechuye nezminne imenuvannya dlya nakopichuvachiv tverdi diski identifikuyutsya za unikalnim identifikatorom fajlovoyi sistemi imenem diska i roztashuvannyam pristroyu do yakogo pidklyuchenij disk udev pracyuye cilkom u prostori koristuvacha Ce prizvodit zokrema do togo sho udev mozhe vikonuvati dovilni programi dlya ukladannya nazvi pristroyu abo jogo inicializaciyi Princip robotiudev zapuskayetsya yak demon i prijmaye cherez soket netlink podiyi uevents vid yadra yaki generuyutsya pri inicializaciyi abo viluchenni pristroyu z sistemi Zaprogramovanih koristuvachem sistemoyu pravila zviryayutsya z vlastivostyami podiyi ta vidpovidnogo pristroyu i pravilo sho zbiglosya yakih mozhe buti kilka mozhe nazvati i stvoriti vidpovidnij fajl pristroyiv a takozh vikonati inshi programi dlya inicializaciyi i konfiguraciyi pristroyu Napriklad takim chinom mozhna realizuvati avtomatichne montuvannya zovnishnih nakopichuvachiv pri yihnomu pidklyuchenni Pravila mozhut zviryatisya z takim vlastivostyam yak konkretna yaderna pidsistema im ya pristroyu v yadri fizichne roztashuvannya pristroyu abo za serijnim nomerom pristroyu Pravila takozh mozhut zapituvati informaciyu za dopomogoyu inshih program abo vkazati sho im ya pristroyu zavzhdi bude odnim i tim zhe nezalezhno vid poryadku viyavlennya pristroyiv sistemoyu Tipovij sposib vikoristannya udev na Linux sistemi dozvoliti posilati podiyi HAL abo DeviceKit shob voni virobili podalshi zalezhni vid pristroyiv diyi Napriklad HAL DeviceKit mozhe povidomiti inshi programi pro novij pristrij za dopomogoyu shirokomovnogo povidomlennya v D Bus Takim chinom robochi seredovisha tipu GNOME abo KDE mozhut avtomatichno zmontuvati USB nakopichuvach i vidkriti fajlovij menedzher dlya pereglyadu jogo vmistu Arhitekturaudev rozdilenij na tri chastini Biblioteka libudev sho dozvolyaye otrimuvati dostup do informaciyi pro pristroyi Demon udevd sho pracyuye u prostori koristuvacha ta keruye vmistom dev Programa udevadm dlya nalagodzhennya ta diagnostiki udev otrimuye podiyi vid yadra cherez netlink soket Ranni versiyi vikoristovuvali hotplug dodayuchi v etc hotplug d default PrimitkiSievers Kay Commit importing udev into systemd systemd arhiv originalu za 8 lipnya 2012 procitovano 25 travnya 2012 Prinyato reshenie o sliyanii proektov udev i systemd 3 travnya 2012 u Wayback Machine ros Arhiv originalu za 9 lipnya 2011 Procitovano 4 chervnya 2012 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Posilannyaudev sources code 12 listopada 2020 u Wayback Machine Discussion of udev rules 16 sichnya 2022 u Wayback Machine udev A Userspace Implementation of devfs by Greg Kroah Hartman 17 travnya 2012 u Wayback Machine PySDM Storage Device Manager and udev rule writer 19 travnya 2012 u Wayback Machine LWN article about devtmpfs 4 travnya 2012 u Wayback Machine