Howto write linux device drivers (updated for Linux 2.6)
https://www.oreilly.com/catalog/linuxdrive3/