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
Source Code 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.

Books Reviewed by members of the BozemanLUG