Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Understanding the Linux Kernel, Third Edition 3rd Edition
Purchase options and add-ons
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.
- ISBN-100596005652
- ISBN-13978-0596005658
- Edition3rd
- PublisherO'Reilly Media
- Publication dateNovember 1, 2005
- LanguageEnglish
- Dimensions7 x 1.8 x 9.19 inches
- Print length942 pages
Frequently purchased items with fast delivery
From the brand
-
Explore Linux resources
-
More From O'Reilly
-
Sharing the knowledge of experts
O'Reilly's mission is to change the world by sharing the knowledge of innovators. For over 40 years, we've inspired companies and individuals to do new things (and do them better) by providing the skills and understanding that are necessary for success.
Our customers are hungry to build the innovations that propel the world forward. And we help them do just that.
Editorial Reviews
About the Author
Marco Cesati received a degree in mathematics in 1992 and a Ph.D. in computer science (University of Rome, "La Sapienza") in 1995. He is now a research assistant in the computer science department of the School of Engineering (University of Rome, "Tor Vergata"). In the past, he served as system administrator and Unix programmer for the university (as a Ph.D. student) and for several institutions (as a consultant).
Product details
- Publisher : O'Reilly Media
- Publication date : November 1, 2005
- Edition : 3rd
- Language : English
- Print length : 942 pages
- ISBN-10 : 0596005652
- ISBN-13 : 978-0596005658
- Item Weight : 3.4 pounds
- Dimensions : 7 x 1.8 x 9.19 inches
- Best Sellers Rank: #419,861 in Books (See Top 100 in Books)
- #3 in Linux Kernel & Peripherals
- #4 in Device Drivers
- #7 in Memory Management Algorithms
About the authors

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on February 10, 2006The book "Undestanding the Linux Kernel",
explains clearly the inner workings of the
current 2.6 Linux kernel.
The presentation is at a considerable level of detail,
the authors fully describe the important data structures,
and the significant chunks of code.
The book is indispensable to any serious
Linux kernel developer.
However, it can be used also at the context
of an "Operating Systems Design" academic course
and the students can learn a lot from the
technologically advanced Linux 2.6 kernel implementation
and can modify/recompile and install their own version!
The level of the book is advanced and I recommend
concurrently with it, the reader to study also the
book:
"Linux kernel development" by Robert Love
that presents the algorithms also very clearly,
but with a more academic view,
without zooming to all the implementation concerns.
I own both books and by studing them, I can have
the significant experience of customizing the source code
of the superior Linux 2.6 kernel.
- Reviewed in the United States on February 9, 2010The 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.).
- Reviewed in the United States on June 11, 2011My need was specific, i.e., to add a new system call interface to Linux without ever having worked with the Linux kernel before. This book has been a fine guide for accomplishing this. The Linux kernel moves fast enough that no published text could be completely consistent with the current source. However, this was close enough to give me a lay of the land and the treatment of memory management and process/thread control had enough routine names and labels that I could search through the source with relative ease. I would recommend it for anyone else jumping into the kernel for the first time.
- Reviewed in the United States on May 9, 2021I have several books on Linux kernel. This book is very old now in 2021, and partly outdated, but still is very valuable source of information about how different subsystems of kernel work. It contains information not only how to use kernel to write drivers, but also description of internals, like interrupts, workqueues, synchronization primitives, memory subsytem, filesystems.
- Reviewed in the United States on November 20, 2013This is a great book for learning the Linux kernel. I've only read the first few chapters, but I've already learned so much. Be careful though - if you don't already have some background in Linux and OS concepts much of this will probably go over your head. The book is best for people who have a good amount of exposure to a variety of operating systems, specifically Unix, and want to get a deeper understanding of the Linux kernel.
- Reviewed in the United States on March 22, 2011Well written, but not overly wordy, this one is at my fingertips at all times. I actually have a copy at home, and one at work, as I constantly need to look up a smaller tidbit, only to completely forget it moments later :) Such is life.
What I love about it most, is how long it takes me to find, understand, and incorporate what I need to get working- The layout is fantastic that way, and info presented in a clear way, which is easy to understand :)
Totally Recommended. (pick up the programming interface from no starch press as well)
- Reviewed in the United States on April 4, 2014There are lots of good unix kernel books such as those written by Maurice J. Bach or Marshall Kirk McKusick. What makes this book unique is that it discusses lots of details related to hardware stuff like segmentation/paging/interrupt/exception, etc.(it's x86 specific, but it should not really matter). After reading this book, you would understand how it really works on the metal level, not just a high level design and concepts which are also dicsusses in great detail in this book. Not an easy read, but it pays off.
- Reviewed in the United States on May 24, 2010This book was one of the best aids I found for my first systems programming course (ECE 391 at UIUC). This book explains just about everything you need to understand (file systems, system calls + interrupts, the PIC, etc) in comprehensible English. This book is more conceptual in its coverage of the Linux kernel (as opposed to giving actual examples of code), but if you want to understand the rationale behind Linux design decisions, this book is at worst a fantastic start, and at best 100% necessary.
Top reviews from other countries
RT TamvadaReviewed in India on November 21, 20165.0 out of 5 stars The starting point of understanding the linux kernel
A must have book for all linux kernel programmers for understanding the system level programming. Quality is great and content is quite exhaustive.
RReviewed in the United Kingdom on October 27, 20095.0 out of 5 stars Terrific Book
This book really is exactly what it says, it will take you from linux poweruser/administrator to understanding the basics of the kernel, and getting that vital starting point in developing.
I bought it some time ago for some background reading and found it a little bit too detailed for that, but am now studying it in more detail for a potential honuors project at university on linux file systems, which involves some kernel jiggery-pokery. Without this, I doubt I'd ever be able to get started.
It explains big ideas in English, then goes on to explain the interesting parts in English, along with the tiny bit of C code it is describing.
Well written and explains rarer generic things in an easily skippable way - for example there is a part of the kernel that uses double-linked-lists and the page before that explains them in a nice box, so that anybody who knew about them already (since they are a general topic and not specific to kernels) can skip it easily.
Douglas Ribas de MattosReviewed in Brazil on May 30, 20245.0 out of 5 stars N/A
N/A
-
HasdrubalReviewed in France on August 12, 20135.0 out of 5 stars Un must pour apprendre ou se rafraîchir la mémoire
Inutile de revenir sur la qualité des livres de l'édition O'Reilly (qui éditent les meilleurs livres qui traitent des logiciels libres).
Ce livre est un must pour comprendre les rouages du noyau Linux (ou se rappeler de ses cours systèmes).
Seul bémol: il ne traite pas des fonctionnalité réseau du noyau.
Bottomline: si vous souhaitez comprendre comment Linux fonctionne, c'est LE livre à lire.
-
MarcoReviewed in Mexico on April 14, 20185.0 out of 5 stars Excelente Libro
Es un libro que para aquellos que busquen entender como funciona realmente el Kernel de Linux, no se decepcionaran, aunque es cierto que si es bastante tecnico y deberas tener conocimientos previos de Ciencias de la Computación o Ingenieria.





