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[edytuj | edytuj kod]
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.[potrzebny przypis]
Działanie[edytuj | edytuj kod]
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[edytuj | edytuj kod]
udev zostało opracowane przez Grega Kroah-Hartmana we współpracy z Dane Stekloffem, Kayem Sieversem i wieloma innymi.
Przypisy[edytuj | edytuj kod]
- ↑ Greg Kroah-Hartman: udev and devfs - The final word. 2003-12-30. [dostęp 2010-04-08]. [zarchiwizowane z tego adresu (2011-07-09)]. (ang.).