Read more
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.
This 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.
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.
List of contents
Preface
Chapter 1: Introduction
Chapter 2: Memory Addressing
Chapter 3: Processes
Chapter 4: Interrupts and Exceptions
Chapter 5: Kernel Synchronization
Chapter 6: Timing Measurements
Chapter 7: Process Scheduling
Chapter 8: Memory Management
Chapter 9: Process Address Space
Chapter 10: System Calls
Chapter 11: Signals
Chapter 12: The Virtual Filesystem
Chapter 13: I/O Architecture and Device Drivers
Chapter 14: Block Device Drivers
Chapter 15: The Page Cache
Chapter 16: Accessing Files
Chapter 17: Page Frame Reclaiming
Chapter 18: The Ext2 and Ext3 Filesystems
Chapter 19: Process Communication
Chapter 20: Program ExZecution
Appendix A: System Startup
Appendix B: Modules
Bibliography
Colophon
About the author
Daniel P. Bovet got a Ph.D. in computer science at UCLA in 1968 and is now full Professor at the University of Rome, "Tor Vergata," Italy.
Summary
Covers Version 2.6 of the Linux kernel, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. This book provides a guided tour of the code that forms the core of all Linux operating systems.