udev
udev – system plików zastępujący starszą implementację (devfs) mechanizmu dynamicznej alokacji tzw. plików urządzeń. Został wprowadzony w jądrze Linux począwszy od serii 2.6.
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[1].
Najważniejsze zalety udev według 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.
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. Oznacza to, że w przypadku urządzeń zawierających się w klasie dysków (USB, cyfrowy aparat fotograficzny, pendrive i odtwarzacz MP3) mogą one 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. udev umożliwia pisanie skryptów bazujących 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.
Początkowo 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. Aktualnie funkcje programu /sbin/hotplug zostały zaimplementowane w udev i nie jest on już potrzebny.
Autorzy
udev zostało opracowane przez Grega Kroah-Hartmana we współpracy z Dane Stekloffem, Kayem Sieversem i wieloma innymi.
Linki zewnętrzne
- Pisanie reguł udev
- Dokumentacja
- Gentoo Wiki: udev
- Polskie tłumaczenie manuali udev i udevadm (od wersji 128)
Przypisy
- ↑ Greg Kroah-Hartman: udev and devfs - The final word (ang.). 2003-12-30. [dostęp 2010-04-08]. [zarchiwizowane z tego adresu (2011-07-09)].