Udev
Z Wikipedii
- Właściwy tytuł tego artykułu to udev. Z powodu ograniczeń technicznych tytuł tego artykułu jest nieprawidłowy.
udev jest systemem plików zastępującym starszą implementację (devfs) mechanizmu dynamicznej alokacji tzw. plików urządzeń. Został on wprowadzony w jądrze Linuksa począwszy od serii 2.6.
Spis treści |
[edytuj] Możliwości udev
W przeciwieństwie do tradycyjnego zarządzania plikami urządzeń w Linuksie udev nie przechowuje statycznego katalogu /dev. Zamiast tego w /dev umieszczane są jedynie pliki reprezentujące urządzenia faktycznie obecne w systemie. W odróżnieniu od devfs, udev działa w przestrzeni użytkownika i pozwala na znacznie swobodniejszą obsługę katalogu /dev. Przeniesienie obsługi /dev z jądra do przestrzeni użytkownika wywołało wiele dyskusji. Porównanie devfs i udev jest dostępne w archiwach kernel.org.
Najważniejsze zalety udev wg powyższego dokumentu to:
- udev jest niezależny od numerów major i minor urządzeń, natomiast devfs nie potrafi obsługiwać ich w ten sposób
- w odróżnieniu od devfs, udev obsługuje nadawanie urządzeniom stałych nazw, które nie zmienią się po restarcie, i nie zależą od kolejności załadowania sterowników, czy podłączenia urządzeń
- udev jest narzędziem działającym w przestrzeni użytkownika, w przeciwieństwie do devfs (działającego w przestrzeni jądra). Powoduje to przeniesienie obsługi nazw urządzeń poza jądro, co jest uważane za zaletę.
- udev jest mniejsze i w przeciwieństwie do devfs zgodne z wytycznymi co do sposobu nazywania urządzeń zawartego w Linux Standard Base
- niektórzy deweloperzy uważają, że devfs cierpi z powodu braku opieki, zaprojektowany został w sposób nie nadający się do poprawienia i powoduje poważne problemy.
[edytuj] Działanie
udev pozwala posiadać reguły opisujące jaką nazwę powinno otrzymać dane urządzenie, niezależnie od tego w jaki sposób zostanie do systemu podłączone. Np. w przypadku urządzeń zawierających się w klasie dysków USB. Nasz cyfrowy aparat fotograficzny, pendrive i odtwarzacz mp3 mogą być podłączane w różnej kolejności i do różnych kontrolerów / portów USB, a i tak otrzymają swoje stałe nazwy, np. /dev/camera, /dev/iriver. W przypadku devfs o nazwach decydowałaby kolejność podłączenia, a nazwy byłyby generowane na zasadzie dodania kolejnego numeru do typu urządzenia, np. /dev/sda0, /dev/sda1. Pozwala to pisać skrypty bazujące na nazwach urządzeń i mieć gwarancję, że po zmianie sposobu czy kolejności podłączenia urządzeń skrypty nadal będą działać prawidłowo.
udev działa otrzymując informacje o zdarzeniach od /sbin/hotplug (który otrzymuje je od jądra) za każdym razem kiedy urządzenie jest dodawane lub usuwane z systemu.
[edytuj] Autorzy
udev zostało opracowane przez Grega Kroah-Hartmana we współpracy z Dane Stekloffem, Kay'em Sieversem i wieloma innymi.