Regular readers here know that I have been very disappointed with most Linux kernel and device driver books. I did like The Linux Kernel Primer, but until this "Essential Linux Device Drivers" book landed on my desk, that was about it.
I admit that it's very hard to write a good book in this area. You simply have to make assumptions about the readers knowledge - if you don't, you'll be writing an encyclopedia or two. However, I still think that my complaints have been justified, and this author proves that you CAN write a readable, information packed book about Linux device drivers without glossing over vast areas.
Well, that's not entirely true: vast areas are still passed by at break-neck speed, but there's a difference here: every chapter tries to give a high level overview of the area to be discussed, which is then followed by very well explained examples of code, and finally finishes up with pointers to the parts of Linux source code that are relevant. That's a formula that works, and the author also often includes pointers to other relevant resources too. With a little Googling, you should be able to really get a lot out of this book.
As you'd expect, this starts out with an overview of the kernel itself, and it's probably the best I've ever seen. Individual Linux boot messages are pulled out, explained, and the the source code that produced them is examined. It then goes on to discuss kernel locks, briefly looks at procfs and memory allocation, and closes (as each chapter does) with pointers to where to look in the source for the subjects discussed. The next few chapters cover more basic concepts like kernel locks and threads, and then the rest of the book is all device drivers.. starting simply and progressing to more complicated hardware, but always following the format of first giving an overview of the how and why, then presenting sample driver(s), a bit on how to most easily debug, and finally pointers to real kernel sources.
Very well done, and I recommend it. It is a bit expensive, but I think it's worth it.
"126" height="32" alt="graphic of book cover" /> Order (or just read more about) "http://www.amazon.com/exec/obidos/ASIN/0132396556/aplawrencescouni" target="_top">Essential Linux Device Drivers from Amazon.com