Preface
This is, on the surface, a book about writing device drivers for the
Linux system. That is a worthy goal, of course; the flow of new
hardware products is not likely to slow down anytime soon, and
somebody is going to have to make all those new gadgets work with
Linux. But this book is also about how the Linux kernel works and how
to adapt its workings to your needs or interests. Linux is an open
system; with this book, we hope, it is more open and accessible to a
larger community of developers.
This is the third edition of Linux Device
Drivers. The kernel has changed greatly since this book
was first published, and we have tried to evolve the text to match.
This edition covers the 2.6.10 kernel as completely as we are able.
We have, this time around, elected to omit the discussion of backward
compatibility with previous kernel versions. The changes from 2.4 are
simply too large, and the 2.4 interface remains well documented in
the (freely available) second edition.
This edition contains quite a bit of new material relevant to the 2.6
kernel. The discussion of locking and concurrency has been expanded
and moved into its own chapter. The Linux device model, which is new
in 2.6, is covered in detail. There are new chapters on the USB bus
and the serial driver subsystem; the chapter on PCI has also been
enhanced. While the organization of the rest of the book resembles
that of the earlier editions, every chapter has been thoroughly
updated.
We hope you enjoy reading this book as much as we have enjoyed
writing it.
|