Linux Device Drivers: 3rd Edition

Author: JONATHANCORBETALESSANDRORUBINIGreg
Publisher:
Publish Date: 2005-06-01
Features: This classic book has been updated to its third edition. It is a must-read for those who wish to support computer peripherals under the Linux operating system, run new hardware, or simply have an interest in general Linux kernel programming. Linux Device Drivers reveals information on how to write drivers for most devices, which has been shared so far only through word-of-mouth or implicit source code comments. The authors are leaders in the Linux community. Jonathan Corbet is an amateur participant in the kernel open-source project and the executive editor of the highly regarded LWN.net news and information site. Alessandro Rubini is an open-source provider of Linux code and a central figure in the active Italian Linux community. Greg Kroah-Hartman is currently the maintainer of the kernel code related to USB, PCI, and the driver core subsystem described in this book. The new edition of this book has been thoroughly updated based on the Linux kernel 2.6.10. This version of the kernel has been rationalized and simplified in several ways for general tasks, such as plug-and-play, interaction with user space through the sysfs filesystem, and multi-device management on standard buses. You don’t need to be a kernel expert to understand and enjoy this book—just a background in C and Unix system calls is required. Guided by detailed examples that can be compiled and run without special hardware devices, you will learn how to write drivers for character devices, block devices, and network interfaces. Chapters are dedicated to the PCI, USB, and tty (terminal) subsystems. This book provides explanations of address spaces, asynchronous events, and I/O for those curious about how operating systems work. The topics covered include:
· Character, block, tty (terminal), and network drivers
· Driver debugging
· Interrupts
· Timing issues
· Synchronization, locks, and symmetric multiprocessing (SMP)
· Memory management and DMA
· Driver model and sysfs
· Hot-plug devices
· General buses, including special requirements for SCSI, PCI, USB, and IEEE1394 (FireWire)

📌 Related Posts