The Linux Kernel Module Programming Guide

Sommario

  1. Prefazione
  2. Introduzione
  3. Ciao Mondo
  4. Fasi preliminari
  5. Comportamento dei driver dei device
  6. Il filesystem /proc
  7. Usare /proc per l'input
  8. Comunicare con i file dei device
  9. Chiamate di sistema
  10. Bloccare i processi
  11. Rimpiazzare printk
  12. Pianificare compiti
  13. I gestori degli interrupt
  14. Multi-processing simmetrico
  15. Insidie comuni
  16. Appendice A
  17. Appendice B


Sull'autore

La Linux Kernel Module Programming Guide fu originariamente scritta per i kernel della versione 2.2 da Ori Pomerantz.
Successivamente, però, Ori non ha più avuto il tempo di mantenere aggiornata la guida: il kernel Linux, dopotutto, è un bersaglio mobile. Lo ha quindi sostituito Peter Jay Salzman per quanto riguarda gli aggiornamenti relativi ai kernel 2.4; ma lo stesso Peter non aveva il tempo di seguire anche gli sviluppi del kernel 2.6: pertanto, Micheal Burian è diventato co-manutentore e si occupa di aggiornare il documento per quanto riguarda i kernel 2.6.

Versioni e Note

Il kernel Linux è un bersaglio mobile: ci siamo sempre domandati se rimuovere le informazioni ormai obsolete da LMPKG oppure mantenerle per motivi storici. Michael Burian ed io abbiamo deciso di creare un nuovo ramo di LKMPG per ogni nuova versione stabile del kernel. In questo modo LKMPG 2.4.x farà riferimento al kernel Linux 2.4 e LKMPG 2.6.x al kernel Linux 2.6. Inoltre, non sarà fatto alcun tentativo di mantenere un archivio di informazioni storiche: chi volesse accedere a questo tipo di informazioni dovrà semplicemente leggere la versione appropriata di LKMPG.

Il codice sorgente e le discussioni si possono applicare alla maggior parte delle architetture, ma non posso promettere niente. L'unica eccezione riguarda il Capitolo 12, intitolato "Gestori di Interrupt", che non dovrebbe essere valido per architetture diversa dalla x86.

Ringraziamenti

Le seguenti persone hanno fornito suggerimenti e correzioni: Ignacio Martin, David Porter, Daniele Paolo Scarpazza, Dimo Velev, Francois Audeon and Horst Schirmeier.