Udev
Udev software | |
---|---|
Genere | Gestione dispositivi (non in lista) |
Sviluppatore | Greg Kroah-Hartman and Kay Sievers |
Ultima versione | 256.7 (8 ottobre 2024) |
Sistema operativo | Linux |
Linguaggio | C |
Licenza | GNU General Public License 2 (licenza libera) |
Sito web | [1] https://git.kernel.org/?p=linux/hotplug/udev.git;a=summary |
Udev è il gestore dei dispositivi per il kernel linux. Viene eseguito in spazio utente e amministra dinamicamente i dispositivi a blocchi per ogni periferica rilevata nel sistema.
Introduzione
[modifica | modifica wikitesto]Udev è un generico gestore di dispositivi, utilizzato dalla versione 2.6 del kernel linux. Viene eseguito come demone in un sistema Linux e si mette in ascolto di eventi uevent inviati dal kernel (tramite socket netlink) quando un nuovo dispositivo viene collegato o rimosso dal sistema.
A differenza dei tradizionali sistemi Unix, dove i dispositivi a blocchi o a caratteri sono rappresentati da un insieme statico di file in /dev, udev permette di gestire dinamicamente la creazione (o rimozione) di questi file speciali, mantenendo solo i nodi relativi ai dispositivi presenti nel sistema.
Udev, rispetto al predecessore DEVFS, presenta alcuni vantaggi[1]:
- supporta l'assegnazione persistente dei nomi dei dispositivi, anche quando essi sono collegati in ordine o posizione differente;
- viene eseguito interamente in spazio utente, di conseguenza i criteri per l'assegnazione dei nomi vengono definiti al di fuori del kernel;
- devfs, a differenza di udev, mantiene la struttura dati relativa ai dispositivi nello spazio di memoria persistente del kernel; questo spazio di memoria non è swappabile (vedi Gestione della memoria).
Architettura
[modifica | modifica wikitesto]Il sistema è diviso in tre parti:
- la libreria libudev, che consente l'accesso alle informazioni relative agli eventi e ai dispositivi presenti nella base di dati di udev;
- il demone udevd, nello spazio utente, che gestisce il filesystem virtuale /dev;
- il comando amministrativo udevadm per il debugging, la gestione degli eventi e il controllo a runtime del demone udevd.
Utilizzo
[modifica | modifica wikitesto]Il sistema fornisce un insieme di regole associate a certi eventi e proprietà del dispositivo rilevato. Attraverso le regole si potrà associare un nome al dispositivo ed eseguire eventuali comandi necessari per la sua installazione e configurazione.
Un modo comune di usare udev su sistemi Linux è di fargli inviare eventi attraverso una socket a HAL o DeviceKit, che eseguiranno ulteriori azioni specifiche per il dispositivo. Ad esempio, quando un nuovo hardware viene rilevato, HAL / DeviceKit avviserà gli altri software in esecuzione, trasmettendo un messaggio broadcast sul sistema D-Bus IPC a tutti i processi interessati. In questo modo, desktop environment come GNOME o KDE possono aprire un file browser quando viene collegata una chiavetta di memoria USB oppure una scheda SD.[2]
Note
[modifica | modifica wikitesto]- ^ (EN) Greg Kroah-Hartman, Udev - A Userspace Implementation of devfs (PDF), su kroah.com, 26 luglio 2003. URL consultato il 7 gennaio 2011.
- ^ (EN) Dynamic Device Management in Udev (PDF), su w3.linux-magazine.com, Linux Magazine, 1º giugno 2006. URL consultato il 7 gennaio 2011 (archiviato dall'url originale il 9 ottobre 2007).
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Pagina ufficiale di Udev su kernel.org, su kernel.org. URL consultato il 7 gennaio 2011 (archiviato dall'url originale il 3 dicembre 2007).
- (EN) Udev – Un'implementazione in userspace di devfs by Greg Kroah-Hartman (PDF), su kroah.com.
- (EN) Guida alla scrittura delle regole udev, su reactivated.net.