In order to thoroughly understand what makes Linux tick and why it works
so well on a wide variety of systems, you need to delve deep into the
heart of the kernel. The kernel handles all interactions between the CPU
and the external world, and determines which programs will share
processor time, in what order. It manages limited memory so well that
hundreds of processes can share the system efficiently, and expertly
organizes data transfers so that the CPU isn't kept waiting any longer
than necessary for the relatively slow disks.
The third edition of Understanding the Linux Kernel takes you on a
guided tour of the most significant data structures, algorithms, and
programming tricks used in the kernel. Probing beyond superficial
features, the authors offer valuable insights to people who want to know
how things really work inside their machine. Important Intel-specific
features are discussed. Relevant segments of code are dissected line by
line. But the book covers more than just the functioning of the code; it
explains the theoretical underpinnings of why Linux does things the way
it does.
This edition of the book covers Version 2.6, which has seen significant
changes to nearly every kernel subsystem, particularly in the areas of
memory management and block devices. The book focuses on the following
topics:
- Memory management, including file buffering, process swapping, and
Direct memory Access (DMA)
- The Virtual Filesystem layer and the Second and Third Extended
Filesystems
- Process creation and scheduling
- Signals, interrupts, and the essential interfaces to device drivers
- Timing
- Synchronization within the kernel
- Interprocess Communication (IPC)
- Program execution
Understanding the Linux Kernel will acquaint you with all the inner
workings of Linux, but it's more than just an academic exercise. You'll
learn what conditions bring out Linux's best performance, and you'll see
how it meets the challenge of providing good system response during
process scheduling, file access, and memory management in a wide variety
of environments. This book will help you make the most of your Linux
system.