Title: Writing Linux Device Drivers: A Guide with Exercises|
Author: Jerry Cooperstein
Publisher: Jerry Cooperstein
Hard copy available from Amazon.com,
electronic copy available for download from several other sites.
Title: Linux Device Drivers, 3rd Edition
Authors: Jonathan Corbet, Allessandro Rubini & Greg Kroah-Hartman
With this book you must also read Jonathan's
Corbet's blog on API Changes in the
2.6 kernel, since the kernel has changed a lot since the book
was written. The blog mentions most of the changes, but
- The Open Group's Single Unix Specification API search engine.
This is the API implemented by Linux and other Unix-like operating systems.
- Definition of
"cargo cult programming". Cargo cult programming can be a big problem with device driver code.
- GCC Inline Assembly Howto.
You will run into some bits of assembly code as you read through the architecture-dependent portions of the kernel sources.
Good Books on Operating Systems
- Andrew Tanenbaum and Maarten van Steen, Distributed Systems Principles and Paradigms
- Mukesh Singhal and Niranjan Shivaratri, Advanced Concepts in Operating Systems
- Tanenbaum, Modern Operating Systems (background)
- Silberschatz, Galvin, Gagne, Operating System Concepts (background)
- Gary Nutt, Operating Systems: A Modern Perspective (background)
- Gary Nutt, Kernel Projects for Linux (background)
- Kernighan, Ritchie, The C Programming Language (background)
- Maxwell, Linux Core Kernel Commentary (background)