Udev
udev je v informatice název subsystému, který řeší správu zařízení pro jádro Linuxu. Obsluhuje připojovaná zařízení reprezentovaná speciálními soubory v adresáři /dev
a stará se o navazující akce v uživatelském prostoru potřebné při přidávání nebo odebírání zařízení za chodu (tzv. hot swapping), například načtení firmware. Je nástupcem systémů devfs a hotplug.
Vývojář | Greg Kroah-Hartman a Kay Sievers |
---|---|
Aktuální verze | 248 (30. března 2021) |
Operační systém | Linux |
Vyvíjeno v | C |
Typ softwaru | démon a svobodný software |
Licence | GPLv2 |
Web | git |
Některá data mohou pocházet z datové položky. |
Historie
udev byl představen v Linuxu 2.5.
Systém využívající nové verze udevu nenabootuje s jádrem starším než 2.6.13, dokud udev není vypnut a klasická složka /dev není použita pro přístup zařízení.
V dubnu 2012 byl zdrojový kód udev sloučen do systemd.[1][2]
Přehled
Na rozdíl od tradičních unixových systémů, kde připojená zařízení ve složce /dev byla statická sada souborů, linuxový udev správce zařízení dynamicky poskytoval pouze soubory zařízení, aktuálně připojených v systému. Ačkoliv devfs využívaný k podobné funkcionalitě, Greg Kroah-Hartman cituje několik důvodů[3] pro upřednostnění implementace udevu před implementací devfs.
- udev podporuje trvalé pojmenování zařízení, nezávislých na pořadí, ve kterém jsou zařízení připojena k systému. Výchozí nastavení udevu poskytuje trvalé názvy pro úložná zařízení. Jakýkoliv pevný disk je rozpoznán podle svého jednoznačného ID, jména disku a fyzického umístění na zařízení, ke kterému je připojen.
- udev pracuje výhradně v uživatelském prostoru, na rozdíl od devfs prostoru jádra. Jedním z důsledků je, že udev přesunul politiku pojmenování z jádra a může tak spustit libovolný program ke složení názvu zařízení z vlastností zařízení dříve, než se vytvoří uzel, celý proces je také přerušitelný a běží s nižší prioritou.
Funkčnost
udev je obecný správce zařízení. Je spuštěn jako démon v linuxovém systému a naslouchá skrze netlinkový socket ueventu, že jádro vyslalo signál o inicializaci nového zařízení nebo jeho odebrání ze systému. Systém poskytuje sadu pravidel, která se shodují s exportovanými hodnotami události a vlastnostmi objeveného zařízení. Odpovídající pravidlo se dle zařízení bude jmenovat, vytvoří pro něj soubor a spustí konfigurační programy pro nastavení a konfiguraci.
udev pravidla mohou odpovídat vlastnostem jako je jádro subsystému, název jádra zařízení, fyzickému umístění zařízení nebo vlastnostem jako sériové číslo. Pravidla mohou požadovat také informace z externích programů k pojmenování zařízení nebo zadat vlastní název, který bude vždy stejný bez ohledu na pořadí, v jakém jsou k systému připojeny.
V minulosti bylo běžným způsobem jak používat udev v linuxových systémech nechat posílat události skrz socket HALu. Například HAL oznámí ostatnímu běžícímu softwaru v systému, že nový hardware je připojen vydáním broadcastové zprávy po D-Bus IPC pro všechny zúčastněné procesy. Tímto způsobem desktopy jako GNOME nebo K Desktop Environment (KDE) mohou spustit správce souborů k prohlížení obsahu nově připojených USB flash disků nebo paměťových SD karet.[4]
V polovině roku 2011 byl HAL odmítnut většinou linuxových distribucí a stejně tak desktopovými prostředí KDE, GNOME[5] a XFCE.[6] Funkcionalita dříve obsažená v HAL byla integrována do samotného udev nebo přesunuta do odděleného softwaru jako je udisks a UPower.
Architektura
Systém je rozdělen do tří částí:
- Knihovna libudev, která povoluje přístup k informacím o zařízení.
- Démon udevd, v uživatelském prostoru obsluhující virtuální složku /dev
- Administrativní příkaz udevadm pro diagnostiku.
Systém dostane volání z jádra skrze netlinkový socket. Dřívější verze za tímto účelem využívaly hotplugu, přidávající odkaz na sebe ve složce /etc/hotplug.d/default.
Autoři
udev byl vyvinut Gregem Kroah-Hartmanem a Kayem Sieversem, s velkou pomocí Dana Stekloffa.
Související články
- devd – Démon (software) změny stavu zařízení pro FreeBSD.
- eudev – Verze udev oddělená Gentoo vývojáři volného systemd.
- mdev – Minimální udev náhrada za BusyBox.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Udev na anglické Wikipedii.
- SIEVERS, Kay. The future of the udev source tree. linux-hotplug mailing list. Dostupné v archivu pořízeném z originálu dne 2015-02-16. (anglicky)
- SIEVERS, Kay. Commit importing udev into systemd. systemd. Dostupné online [cit. 2013-05-22]. (anglicky)
- Greg Kroah-Hartman. udev and devfs - The final word [online]. [cit. 2008-01-24]. Dostupné v archivu pořízeném dne 2011-04-11. (anglicky)
- Dynamic Device Management in Udev [online]. Linux Magazine, 2006-10-01 [cit. 2008-07-14]. Dostupné online. (anglicky)[nedostupný zdroj]
- HALRemoval [online]. 2011-06-28 [cit. 2011-09-13]. Dostupné online. (anglicky)
- Thunar-volman and the deprecation of HAL in Xfce [online]. 2010-01-17 [cit. 2011-09-13]. Dostupné v archivu pořízeném dne 2011-08-30. (anglicky)