udev | |
---|---|
Typ | uzel zařízení |
Vývojář | Greg Kroah-Hartman a Kay Sievers |
Zapsáno v | Z |
Operační systém | Linux (kernel) |
První vydání | listopadu 2003 |
Nejnovější verze | 251 ( 21. května 2022 ) [1] |
Licence | GPL v2 |
webová stránka | git.kernel.org/?p=linux/… |
udev - Správa zařízení pro nové verze linuxového jádra , nástupce devfs , hotplug a HAL . Jeho hlavním úkolem je obsluhovat uzly zařízení v adresáři / dev a obsluhovat všechny akce prováděné v uživatelském prostoru při přidávání/odebírání externích zařízení, včetně načítání firmwaru .
udev byl přidán do Linuxu 2.5.
V jádře Linuxu 2.6.13 bylo představeno a aktualizováno nové rozhraní uevent . Nový udev nebude fungovat na jádrech starších než 2.6.13.
V dubnu 2012 byl zdrojový kód udev sloučen do zdrojového kódu systemd [2] .
Projekt eudev (fork udev od Gentoo ) oficiálně začal jako náhrada za Systemd-udevd. Na poslední konferenci FOSDEM 2013 vývojáři eudev jasně řekli, že eudev „je pro ně čistě vzdělávací projekt“ a „jejich kód v současném stavu by v žádném případě neměl být považován za připravený k produkci“ [1] .
Díky udev obsahuje adresář /dev pouze soubory pro zařízení, která jsou aktuálně připojena k systému. Každé zařízení má svůj vlastní odpovídající soubor. Pokud je zařízení odpojeno od systému, bude tento soubor odstraněn. Obsah adresáře /dev je uložen ve virtuálním systému souborů a všechny soubory v něm jsou vytvořeny při každém spuštění systému. Upravené nebo ručně vytvořené soubory se po restartu neuloží. Soubory a adresáře, které je třeba zachovat nebo které by měly být vždy přítomny v adresáři /dev, bez ohledu na stav příslušného zařízení, by měly být umístěny v adresáři /lib/udev/devices. Při spuštění systému se obsah tohoto adresáře zkopíruje do /dev tak, jak je (se stejnými oprávněními).
Na rozdíl od tradičního schématu správy adresářů Unix /dev , kde jeho obsahem byla neměnná sada souborů, poskytuje udev dynamickou správu zařízení, která jsou skutečně v systému. Ačkoli tuto funkci poskytovalo devfs , zastánci udev zdůrazňují následující výhody jejich řešení [3] :
udev běží jako démon a přijímá události uevents z jádra přes netlink socket , které se generují při inicializaci zařízení nebo jeho odstranění ze systému. Uživatelem definovaná (systémová) pravidla se kontrolují podle vlastností události a odpovídajícího zařízení a odpovídající pravidlo (kterých může být více než jedno) může pojmenovat a vytvořit soubor odpovídajícího zařízení a také spouštět další programy inicializovat a nakonfigurovat zařízení. Můžete tak například implementovat automatické připojování externích disků při jejich připojení.
Pravidla lze kontrolovat podle vlastností, jako je konkrétní subsystém jádra, název zařízení v jádře, fyzické umístění zařízení nebo sériové číslo zařízení. Pravidla mohou také vyhledávat informace pomocí jiných programů nebo určit, že název zařízení bude vždy stejný, bez ohledu na pořadí, ve kterém systém zařízení zjišťuje.
Typickým způsobem použití udev v systému Linux je povolit odesílání událostí HAL nebo DeviceKit , aby prováděly následné akce specifické pro zařízení. Například HAL/DeviceKit může upozorňovat jiné programy na nové zařízení pomocí zprávy vysílání D-Bus . Desktopová prostředí jako GNOME nebo KDE tedy mohou automaticky připojit jednotku USB a otevřít správce souborů, aby si mohli prohlédnout její obsah.
udev je rozdělen do tří částí:
udev přijímá události z jádra přes netlink socket. Dřívější verze používaly hotplug přidáním do /etc/hotplug.d/default .