Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

What good books are there out there for Linux kernel driver development? Preferably targeting a rather new kernel release.

Which one is best in you opinion?

share|improve this question
    
The title says "kernel driver development", the question "kernel development". What are you exactly looking for? –  chris Feb 16 '11 at 14:40
    
@chris: Added clarification, I am looking for kernel driver development. –  bjarkef Feb 16 '11 at 14:59
add comment

migrated from stackoverflow.com Feb 16 '11 at 13:51

This question came from our site for professional and enthusiast programmers.

4 Answers

up vote 4 down vote accepted

Linux Device Drivers should help. By the way, I'm no driver coder.

share|improve this answer
    
The one and only. +1 –  Andrejs Cainikovs Feb 16 '11 at 11:59
    
What makes me hesitate about the Linux Device Drivers book is that it targets the rather old 2.6.10 kernel. But maybe the API for drivers haven't changed much since then? –  bjarkef Feb 16 '11 at 15:04
    
@bjarkef: LDD is still an interesting book. There haven't been any fundamental changes, but a few interfaces described there have been deprecated in favor of better ones. No matter what book you use, you should check online for evolutions between your book and your target kernel version. –  Gilles Feb 16 '11 at 20:28
1  
I think LDD is still an excellent starting point. You need to learn the basics anyway, might as well start there. Once you get your feet wet then you worry about newer kernel releases. –  Mr. Shickadance Feb 17 '11 at 18:39
    
LDD is in the mail right now. Thanks for the input. :) –  bjarkef Mar 2 '11 at 6:36
add comment

Linux Kernel Development by Robert Love covers linux-2.6.34

share|improve this answer
add comment

You should opt for LDDv3, as it is one of the fundamental books on the same topic. After you grab this book, go and look for Understanding the Linux Kernel.

These two book suffice to fulfill your thirst for kernel (driver) development.

share|improve this answer
add comment

The books cited give you a good idea of how it all fits together, then you should look at kernelnewbies for more up-to-date advice, and LWN's Kernel page will alert you to last-minute changes (it also contains in-depth articles on broad areas). A good operating systems text (like Stallings) is handy (But don't believe a word of what it says, textbooks tend to concentrate on the pieces that can be described simply or with a decent theory; real programs tend to be much messier than the simplistic techiques described in the typical undergraduate textbook. The majority of the Linux kernel source code is device drivers, which at most are mentioned in passing in said textbooks.).

The kernel is huge (some 14 million lines of code and counting) and complex. Be advised that the core kernel hackers are absolute fanatics of efficiency (where it matters), so some of the code is truly bizarre, and it also contains sterling textbook examples of C preprocessor abuse.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.