Poundcake - Shop now
FREE Returns
Ships from
Amazon.com
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Amazon.com
Sold by
Amazon.com
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Kindle app logo image

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.

QR code to download the Kindle App

Follow the authors

Something went wrong. Please try your request again later.

Understanding the Linux Kernel, Third Edition 3rd Edition


Purchase options and add-ons

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.


From the brand

Editorial Reviews

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. He had to wait over 25 years before being able to teach an operating system course in a proper manner because of the lack of source code for modern, well-designed systems. Now, thanks to cheap PCs and to Linux, Marco and Dan are able to cover all the facets of an operating system from booting to tuning and are able to hand out tough, satisfying homework to their students. (These young guys working at home on their PCs are really spoiled; they never had to fight with punched cards.) In fact, Dan was so fascinated by the accomplishments of Linus Torvalds and his followers that he spent the last few years trying to unravel some of Linux's mysteries. It seemed natural, after all that work, to write a book about what he found.

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)

About the authors

Follow authors to get new release updates, plus improved recommendations.

Review this product

Share your thoughts with other customers

Top reviews from the United States

  • Reviewed in the United States on February 10, 2006
    The 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.
    63 people found this helpful
    Report
  • Reviewed in the United States on February 9, 2010
    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.).
    4 people found this helpful
    Report
  • Reviewed in the United States on June 11, 2011
    My 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.
    2 people found this helpful
    Report
  • Reviewed in the United States on May 9, 2021
    I 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.
    9 people found this helpful
    Report
  • Reviewed in the United States on November 20, 2013
    This 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.
    4 people found this helpful
    Report
  • Reviewed in the United States on March 22, 2011
    Well 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)
    5 people found this helpful
    Report
  • Reviewed in the United States on April 4, 2014
    There 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, 2010
    This 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.
    One person found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • RT Tamvada
    5.0 out of 5 stars The starting point of understanding the linux kernel
    Reviewed in India on November 21, 2016
    A must have book for all linux kernel programmers for understanding the system level programming. Quality is great and content is quite exhaustive.
  • R
    5.0 out of 5 stars Terrific Book
    Reviewed in the United Kingdom on October 27, 2009
    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 Mattos
    5.0 out of 5 stars N/A
    Reviewed in Brazil on May 30, 2024
  • Hasdrubal
    5.0 out of 5 stars Un must pour apprendre ou se rafraîchir la mémoire
    Reviewed in France on August 12, 2013
    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.
    Report
  • Marco
    5.0 out of 5 stars Excelente Libro
    Reviewed in Mexico on April 14, 2018
    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.