Ho letto quasi una settimana fa la notizia che nella release 2.6.32 del kernel linux udev verrà inesorabilmente spazzato via per far spazio a devtmpfs. Ammetto con onestà che la mia conoscenza di linux in modo più dettagliato è cominciata con il rilascio della serie 2.6. Proprio la serie che ha inserito udev all’interno del kernel al posto di devfs. Quindi ho cercato di informarmi al riguardo delle poco lusinghiere valutazioni di devfs.
Per chi non lo sapesse udev è il sistema grazie al quale viene gestita la creazione dinamica delle periferiche in /dev. Infatti, diversamente dai sistemi Unix tradizionali, Linux mantiene dinamicamente il contenuto di /dev visualizzando solo i nodi associati a periferiche attualmente collegate al pc.
Udev soppiantò devfs per due ragioni fondamentali:
- Udev supporta un naming persistente dei device. Ovvero le periferiche vengono associati a file il cui nome non dipende dall’ordine in cui le periferiche vengono collegate al pc. Il nome è legato a come sono connessi a livello hardware i vari device.
- Udev lavora in user space mentre devfs lavora in kernel space.
Nonostante ciò devfs è utilizzato da ogni altro sistema Unix: Solaris, Mac OS X, FreeBSD, DragonFly BSD. Questo rende Linux sicuramente un po più avanzato rispetto ai concorrenti. Infatti i due punti sopracitati oltre a complicare e a rendere meno pratico il popolamento e la gestione di /dev offrono il fianco ad alcuni attacchi di privilege escalation.
Linux però non si accontenta. Scarta anche udev per devtmpfs. Questa nuova implementazione offre un approccio ibrido kernel-user e il conseguente popolamento di /dev fin dalle primissime fasi di boot.
Questa scelta ha però suscitato violente reazioni dagli osteggiatori di devfs che hanno rinominato in modo dispreggiativo il nuovo device file system con il nome di devfs2.
Onestamente ho letto le motivazioni ed alcuni commenti al riguardo qui e qui e le trovo sensate. Stando a quello che ho letto penso che devtmpfs possa essere un buon passo in avanti anche se non so quanto significativo.
Altra questione che mi preoccupava era il passaggio di versione. Come si comporta la distribuzione nel passaggio da udev a devtmpfs? La questione è spinosa e importante per molti motivi. Io utilizzo una rolling distro e passaggi molto pesanti sono sempre un piccolo rischio. Ma non solo. La versione 2.6.32 del kernel sarà anche quella della nuova probabile LTS di Ubuntu, 10.4 Lucid Lynx.
Il passaggio sembra però essere del tutto indolore. Comunque è ancora troppo presto per poter dare giudizi. La questione è accesa.