Esattamente come per ogni altro aspetto della programmazione, anche per i device driver del SO Linux esiste una sorta di Hello World, ossia un punto di partenza dal quale sviluppare le proprie conoscenze e competenze.
Per chi fosse interessato, volevo segnalare un articolo apparso su O’Reilly Linux Dev Center, intitolato appunto /dev/hello_world: A Simple Introduction to Device Drivers under Linux. In esso viene trattato l’argomento della scrittura di un modulo per il kernel Linux, esaminando gli aspetti più basilari ed importanti.
L’obiettivo è quello di visualizzare il tipico messaggio tramite del codice inserito come modulo. I metodi presentati sono tre, e consistono rispettivamente nello stampare la stringa Hello World tramite printk() nel buffer del kernel, tramite un file posto nel file system virtuale proc o tramite un file posto in /dev.
La stesura di un modulo per il kernel viene trattata in dettaglio, a partire dal download dei sorgenti del kernel (o almeno dell’ambiente minimo necessario alla compilazione di moduli) sino ad arrivare ai commenti sul codice presentato come esempio dall’autore dell’articolo, con tanto di descrizioni (vedi le varie macro, come module_init() o module_exit()). Anche il processo di compilazione non è lasciato al caso, e così, utilizzando i sorgenti a corredo, è possibile infine dare un bel cat/dev/hello e vedere la fatidica frase nel terminale.
Vale senz’altro la pena dare un’occhiata all’originale, specie se l’argomento vi è nuovo e volete approcciarvi ad esso in maniera molto pratica. In conclusione, vorrei segnalare anche un’altra risorsa, ossia LinuxChix Kernel Hacking Lessons. Happy Coding!
di Francesco di Salvo - Programmazione.it