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.

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.

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 je devfs využívaný k podobné funkcionalitě, Greg Kroah-Hartman cituje několik důvodů 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.

V polovině roku 2011 byl HAL odmítnut většinou linuxových distribucí a stejně tak desktopovými prostředí KDE, GNOME a XFCE. 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

Externí odkazy 
 udev source code
 Discussion of udev rules
 udev – A Userspace Implementation of devfs by Greg Kroah-Hartman
 PySDM (Storage Device Manager and udev rule writer)
 Introduction to device management
 LWN article about devtmpfs
 BusyBox documentation for mdev

Linux
Software pro Linux
Konfigurace softwaru
Systémový software
Svobodný software