views:

175

answers:

5

Hi,

I'm looking for a good book on the linux kernel.

I've found this one http://www.kroah.com/lkn/ which is free.

I'd like something I can read when away from my computer though and so want to buy a good book.

I was thinking about getting this hxxp://oreilly.com/catalog/9780596000028 (cannot submit more than one link). Has anyone any experience of it?

I'd like a book that would let me learn how the kernel works and how to add code to the kernel and code modules / drivers.

Thanks in advance for your input

Jack

+6  A: 

Linux kernel development (LKD) by Robert love is a good one to start with.

Next, Understanding Linux kernel (ULK) if you have good amount of time to read.

Linux device drivers(LDD) if you are interested in linux device drivers.

kumar
ULK is pretty in depth so?Thanks for the advice!
jcul
+1 All are great books
abyx
Your ordering is good.
Noah Watkins
A: 

No single book can teach you "how the kernel works and how to add code to the kernel and code modules / drivers".

LKN is mainly about getting & building the kernel, then tweaking how it's built, but if you haven't already got that 100% down, start with that.

Robert Love's book is good, but only has enough detail to give you a rough sketch IMHO, though I've only read the 2nd edition.

Reading the kernel articles on lwn.net is a good idea, look in the archives too.

I'd also recommend writing a "hello world" kernel module, look online.

At some point though you just have to start looking at the source code.

mpe
Thanks for the advice.I'll try a hello world module.
jcul
A: 

I would add to this:
"Linux Kernel Architecture" by Wolfgang Mauerer, Wrox, October 2008.
It's a BIG book (1300+ pages) that contains explanations, details and comments about most aspects of the kernel: I use it as my roadmap to the kernel territories. Not a free book, but the one I use the most in the bunch (I also have and use the previously mentioned ones and some). More recent and up-to-date than the two other ones, too. For TOC, excerpts, etc.:
http://www.wrox.com/WileyCDA/WroxTitle/Professional-Linux-Kernel-Architecture.productCd-0470343435.html

filofel
A: 

I would recommend starting with "Embedded Linux Primer: A Practical Real-World Approach". Read first 7-8 chapters. This is will give you enough understanding of the linux kernel code and directory structure that you will feel comfortable browsing through it. It will also help you build a basic level of understanding about what different files are meant for and where the kernel code starts and where it goes after that.

When you are done with that I will recommend "Linux kernel development by Robert love" and after that INTERNET is your best friend.

binW
A: 

Best linux kernel books:

  1. LKD: Linux Kernel Development, by Rober Love (480 pages)
  2. ULK: Understanding Linux kernel (944 pages)
  3. LDD: Linux Device Drivers (640 pages)
Kdeveloper