/dev
La directory /dev
Molti utenti Linux sanno che /dev/sda1 è la via veloce per riferirsi alla prima partizione del primo disco che trova il kernel. Questo è abbastanza facile, giusto?
Ma considerando i dispositivi hotpluggable tipo USB, IEEE 1394, PCI hot-swappable, ecc.... Qual'è il primo dispositivo per ognuno di questi? E per quanto? Come saranno chiamati gli altri dispositivi quando il primo viene rimosso? Come questo influenzerà le operazioni in corso? Non sarebbe poco divertente se un lavoro di stampa venisse spostato da una stampante laser di fascia alta a una stampante a matrice obsoleta solo perchè la mamma di qualcuno ha deciso di staccare la spina sulla stampante laser (che in questo caso era la prima stampante)?
Inserire il gestore del dispositivo. Un gestore di dispositivo moderno (che includa udev e eudev) deve:
- Funzionare in userspace.
- Creare e rimuovere i device files dinamicamente.
- Fornire svariati nomi per i dispositivi.
- Fornire un programma di interfaccia come applicazione userspace (API).
Ogni volta che avviene una variazione all'interno della struttura del dispositivo, il kernel emette un uevent che viene captato dal gestore del dispositivo. Tale gestore, quindi, segue le regole dichiarate nelle directories /etc/udev/rules.d, /run/udev/rules.d e /lib/udev/rules.d. In base alle informazioni contenute qui, l'uevent trova la o le regole di cui ha bisogno per innescare ed eseguire le azioni richieste. Queste azioni possono coinvolgere la creazione o la cancellazione dei files di dispositivo, e possono anche innescare la ricerca di particolari firmware all'interno della memoria del kernel.