Understanding the Linux Kernel, Third Edition

Understanding the Linux Kernel, Third Edition

Category: (Book)

38 new, starting at $27.97

16 used, starting at $24.98

Buy Now

Editorial Reviews

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.

Customer Reviews

Outstanding Reference Work

Reviewed by M. Carey, 2010-02-09

The Understanding the Linux Kernel (3rd edition) covers essentially all the kernel's major systems and methodologies in depth. It also conveys a deep understanding in terms that an average computer programmer can grasp with effort. Those of you who have designed and built your own operating systems will also gain insight with this book into the reasoning used to do things like memory allocation, device I/O copy operations, and deep memory management techniques. It covers in depth the 32 bit paging systems, but is a little shy on the new SLUB allocator and x86_64 bit paging. IA64 is covered in adequate detail, but more focus is on the 32 bit side of the house. Overall it does give you the locations to look for more information and provides a well organized and intuitive guide to the Linux kernel in general. Highly recommended reading if you are looking to truly understand the Linux kernel, or do things around it (i.e. circumvention of security mechanisms, etc.).

Very well written, it brings you a very detailed perspective about the Linux Kernel

Reviewed by Rafael Azenha Aquini, 2009-11-21

I just would like to say that it is an indispensable book for anyone who wants to get a detailed journey to the Linux Kernel. Very well written, it embraces the major kernel subsystems with very rich explanations and detailed examples.

This book is good and thorough,

Reviewed by JohnnyU, 2009-07-04

This book is good and thorough - it answered the questions I had in a straightforward yet detailed way. It is a definite recommend.

'Linux Device Drivers' is Better

Reviewed by D. Chapman, 2009-03-31

Despite its size, this book has various defects.
First of all, while it covers the memory systems with a
great amount of detail, the file system and the description
of the actual kernel are vague.
Second, the index and table of contents make it quite
difficult to find your way around the book. As a rule
of thumb, an index should have two entries per page of
text. This book falls way short of that.

I bought this book as part of a kernel programming class,
and was falling behind until I got a copy of the other book:

http://www.amazon.com/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903


Lots of information!

Reviewed by C. Hopkins, 2009-02-19

This book has a ton of information about the workings of the Linux Kernel.
It is also somewhat hard to read and follow, I often have to reread sections of this book.
I find it best complimented with Linux Kernel Development by Robert Love.