Documentazione
Esistono alcuni libri di riferimento, scritti però per i kernel 2.4. Sono un utile strumento di riferimento:
Linux Device Drivers (seconda edizione) scritto da Rubini: (update: è uscita la terza edizione, aggiornata al kernel 2.6.10)
http://www.xml.com/ldd/chapter/book/
Understanding the Linux Kernel (Bovet, Cesati):
http://www.amazon.com/exec/obidos/tg...=UTF8&v=glance
Linux kernel internals (aa.vv.)
http://www.amazon.com/exec/obidos/tg...35837?v=glance
Understanding the linux virtual memory manager (Mel Gorman):
http://phptr.com/title/0131453483
Differenze con il kernel 2.6:
Esistono una serie di articoli che coprono le differenze tra le due serie. Gli articoli sono stati pubblicati da lwn, e costituiscono un importante completamento dei libri suggeriti in precedenza:
http://lwn.net/Articles/driver-porting/
Mailing list
The Linux Kernel Mailing List:
http://marc.theaimsgroup.com/?l=linux-kernel&r=1&w=2
Kernelnewbies mailing list:
http://mail.nl.linux.org/kernelnewbies/
Sorgenti del kernel
Al di là dei libri, un driver ben scritto vale più di mille pagine. I sorgenti del kernel sono una risorsa inestimabile di documentazione.
Esiste anche la directory Documentation dentro all'albero dei sorgenti, che copre argomenti specifici.
Altri documenti
Sono disponibili presso kernelnewbies.org; alcuni però sono diventati obsoleti:
http://www.kernelnewbies.org/documents/
Uno script utilissimo
Questo script:
Codice:
#!/bin/bash
FILTER=".[chsS]"
if [ "$1" = "" ]; then
echo $0 \<string\>
exit
fi
find . \( -path './*' \) \
-name \*${FILTER} -exec grep -l -- "$*" {} \; 2>/dev/null
cerca ricorsivamente, a partire dalla directory corrente, i file sorgente che contengono la stringa indicata. E' utilissimo per rintracciare tra i sorgenti del kernel degli esempi di come è usata una determinata funzione.