Understanding the Linux Kernel

Understanding the Linux Kernel

3.3 3
by Daniel P. Bovet

View All Available Formats & Editions

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

…  See more details below


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.

Read More

Editorial Reviews

The Barnes & Noble Review
Use the source, Luke: The best way to understand operating systems is to look at source code -- preferably with help from experts. Nowadays, there’s no better operating system to inspect than Linux. And there are no better guides than Daniel Bovet and Marco Cesati. Especially now that they’ve updated Understanding the Linux Kernel for Linux 2.6.

Here’s your guided tour of the kernel: core data structures, design decisions, algorithms, and programming tricks. Bovet and Cesati can’t cover everything, but in 900 pages, they cover a lot: memory addressing and management, processes and scheduling, interrupts, exceptions, synchronization, timing, address spaces, system calls, signals, filesystems, I/O, device drivers, IPC, program execution, and more. While most content is hardware-independent, wherever it isn’t, the authors focus on x86 -- offering even deeper insights into Linux’s efficiency. Bill Camarda, from the February 2006 Read Only

Product Details

O'Reilly Media, Incorporated
Publication date:
Edition description:
Third Edition
Product dimensions:
7.00(w) x 9.19(h) x 1.80(d)

Related Subjects

Meet 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).

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network


Most Helpful Customer Reviews

See all customer reviews >

Understanding the Linux Kernel 3.3 out of 5 based on 0 ratings. 3 reviews.
Guest More than 1 year ago
Are you curious about how Linux works and why it is so efficient? If you are, then this book is for you! Authors Daniel Plerre Bovet and Marco Cesati, have done an outstanding job of writing a practical book that will help you find your way through the many thousands of lines of code. Bovet and Cesati, begin by presenting a general picture of what is inside a Unix kernal and how Linux competes against other well-known Unix systems. Then, the authors explain how 80x86 processors include special circuits to address data in memory and how Linux exploits them. They continue by explaining how each process runs either in an unprivileged User Mode or in a privileged Kernal Mode. Then, the authors introduce interrupts and exceptions. Then, they discuss how synchronization mechanisms are needed so that all these requests can be serviced in a interleaved way by the kernal. Next, the authors discuss timing measurements. Then, they explain how Linux executes, in turn, every active process in the system so that all of them can progress toward their completions. They continue by describing the sophisticated techniques required to handle the most precious resource in the system. Next, the authors show you how the kernal copes with the requests for memory issued by greedy application programs. Then, they explain how a process running in User Mode makes requests to the kernal. They continue by describing how a process may send synchronization signals to other processes. Then, the authors introduce a general layer that supports many different filesystems. Next, they offer insights into special files and on the corresponding hardware device drivers. They also show you how to reduce disk accesses through the use of RAM. Then, they show you how user applications access normal files. Next, the authors explain the techniques used by Linux to ensure that enough memory is always available. Then, they illustrate the most frequently used Linux filesystem, namely Ext2 and its recent evolution, Ext3. They continue by introducing communication mechanisms other than signals available to User Mode processes. Finally, the authors explain how user applications are started. This most excellent book helps you distinguish between crucial data structures and secondary ones. More importantly, this book helps you become a true Linux hacker.
Anonymous More than 1 year ago
Anonymous More than 1 year ago