This book, a classic entering its third edition, is a must-read for anyone who wants to support computer peripherals under the Linux operating system, wants to run new hardware under Linux, or is simply interested in Linux kernel programming in general. Linux Device Drivers reveals information-heretofore shared only by word of mouth or in cryptic source code comments-on how to write drivers for a wide range of devices.
This new edition has been completely updated for Version 2.6.10 of the Linux kernel. This version of the kernel has rationalized and simplified several ways of doing common tasks, such as plug and play, interaction with user space through the sysfs filesystem, and management of multiple devices on standard buses.
You don't have to be a kernel hacker to understand and enjoy Linux Device Drivers; all you need is an understanding of C and some background in Unix system calls.
You'll learn how to write drivers for character devices, block devices, and network interfaces, guided by full-featured examples you can compile and run without special hardware. The PCI, USB, and tty (terminal) subsystems each get their own chapter. For those who are curious about how an operating system does its job, this book provides insights into address spaces, asynchronous events, and I/O.