Linux Device Drivers
Jonathan Corbet, Alessandro Rubini
Honestly, I really don't understand how anyone can give this book 5 stars. To start off on a positive tone, I'll say what I liked about it.
1) Lots of information. There is no denying this, it is very informitive. However, this is a double edged swords (will discuss later)
2) The basic drivers are described pretty well. The scull driver is a good way to ease into driver development, imo. Simple enough that it's not too overwhelming and ununderstandable, but not overly simple so that you actually get an idea of what's going on.
3) It's free.
That's it for the positives. Now for a huge list of negatives.
1) Most of the information is irrelevent. I feel like the authors lost focus as the book went on, and forgot they were not writing a general "Linux Kernel" book but a specific book for drivers. Many a time do they spend pages upon pages going on about something, only to mention "but this is never used by read driver developers" at the end. You end up in a really unpleasant situation where you have to sift through a bunch of useless info to get to the useful stuff. Most of the time I ended up just searching google, and got better results.
2) Lack of more complex examples. Let's face it, no one needs to write an extremely simple char driver. However, that's as complex as the examples get. Beyond the scull driver, it's just code fragments. I sincerely hope you don't have to write a serial tty device. Which leads me to my next point.
3) Outdated. Many kernel API changes have been made to the point where the code is no longer compilable (especially on the tty front). Methods used in the book have been done away with in the newer kernel API's.
Honestly, you're much better off just resorting to Google. If you want to write your own driver and you read through this book, you'll still have no idea where to start. The functions in the scull driver are well-described, but that's it. The authors use too much space writing about useless crap you really don't care about, and this comes at the expense of useful info
that will actually help you write drivers.
This book will probably come up on your google searches, and it might be worth it to skim the regular chapters. Honestly though, it's not going to tell you anything your other search results won't. This is most definitely not the "end all, be all" of writing linux drivers, it just happens to be the only one.
Ссылка удалена правообладателем
----
The book removed at the request of the copyright holder.