Understanding the Linux Kernel
by Daniel P. Bovet and Marco Cesati
Published by O'Reilly 2001
review by Ken Dyke
A journey through the innermost workings of the kernel that is comprehensible to the non-programmer/non-hacker.
Table of Contents Chapter 1 Introduction Chapter 2 Memory Addressing Chapter 3 Processes Chapter 4 Interrupts and Exceptions Chapter 5 Timing Measurements Chapter 6 Memory Management Chapter 7 Process Address Space Chapter 8 System Calls Chapter 9 Signals Chapter 10 Process Scheduling Chapter 11 Kernel Sychronization Chapter 12 The Virtual Filesystem Chapter 13 Managing I/O Devices Chapter 14 Disk Caches Chapter 15 Accessing Regular Files Chapter 16 Swapping: Methods for Freeing Memory Chapter 17 The Ext2 Filesystem Chapter 18 Process Communication Chapter 19 Program Execution Appendix A System Startup Appendix B Modules Appendix C Source Code Structure Bibliography Source Code Index Index
Everything is explained clearly, in terms that a non-programmer can understand (the explainations were so clear that I understood most of the code bits). For me, this book served as transport to a new level of understanding of the *nix philosophy. After learning what data structures are, double linked lists, and how FIFOs work, when I came back to the computer I saw it with new eyes and felt a new confidence as I logged in. It has expanded my overall understanding of computer operating systems such that the specialized pieces I have studied since seem to fit in much easier.
The kernel version that serves as the main focus of the book is the 2.2.x. Each chapter closes with a look ahead to the 2.4.x kernel which had not yet been released when the book was published.
Recommended for anyone who wants a deeper understanding of what goes on underneath the GUI.