One of the great things about working at VMware is that they have a shuttle that takes me from a light rail station 10 minutes from my house to work. Aside from savings lots of money on gas, this gives me a good chunk of time to read.
I just finished reading “Linux Kernel Development” by Robert Love and I have to say that I really enjoyed it. I liked the earlier chapters a bit better than the later ones – I’m not sure if this is the subject matter or that the author got tired and less specific in the later chapters or I got tired of reading about kernel internals. Maybe it’s just me but it seemed that chapters 1 through 11 were more lucid than chapters 12 through 20.
In any case, I found the book to be excellent and remarkably clear for a detailed topic such as the Linux kernel.
Here’s the table of contents, in case you’re interested in what it covers:
Foreword, by Andrew Morton Preface Chapter 01: Introduction to the Linux Kernel Chapter 02: Getting Started with the Kernel Chapter 03: Process Management Chapter 04: Process Scheduling Chapter 05: System Calls Chapter 06: Interrupts and Interrupt Handlers Chapter 07: Bottom Halves and Deferring Work Chapter 08: Kernel Synchronization Introduction Chapter 09: Kernel Synchronization Methods Chapter 10: Timers and Time Management Chapter 11: Memory Management Chapter 12: The Virtual Filesystem Chapter 13: The Block I/O Layer Chapter 14: The Process Address Space Chapter 15: The Page Cache and Page Writeback Chapter 16: Modules Chapter 17: kobjects and sysfs Chapter 18: Debugging Chapter 19: Portability Chapter 20: Patches, Hacking, and the Community Appendix A: Linked Lists Appendix B: Kernel Random Number Generator Appendix C: Algorithmic Complexity Bibliography Index
A work in progress, I’m jotting down some notes (little more than a lightly-annotated table of contents) about the book to help me jog my memory later.
I’m now looking forward to Robert’s new soon-to-be-released book: Linux System Programming: Talking Directly to the Kernel and C Library