Linux Device Drivers, Third Edition By Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
Chapter 1: An Introduction to Device Drivers
Chapter 2: Building and Running Modules
Chapter 4: Debugging Techniques
Chapter 5: Concurrency and Race Conditions
Chapter 6: Advanced Char Driver Operations
Chapter 7: Time, Delays, and Deferred Work
Chapter 9: Communicating with Hardware
Chapter 10: Interrupt Handling
Chapter 11: Data Types in the Kernel
Chapter 14: The Linux Device Model
Chapter 15: Memory Mapping and DMA
Labels: linux, linux kernel