Product Details
Understanding the Linux Kernel, Third Edition

Understanding the Linux Kernel, Third Edition
By Daniel Bovet, Marco Cesati

List Price: $49.95
Price: $32.97 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

64 new or used available from $26.90

Average customer review:

Product Description

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.


Product Details

  • Amazon Sales Rank: #37454 in Books
  • Published on: 2005-11
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 942 pages

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


Customer Reviews

A detailed and comprehensive explanation of the inner workings of the latest 2.6 Linux kernel5
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.

Excellent, but not for beginners5
Understanding the Linux Kernel is an excellent guide for those who have some experience using Linux, and would like to know what's going on under the hood. It's a comprehensive guide that not only describes how Linux boots and initializes itself, and how programs call functions inside the kernel, but actually goes down to the murky depths of interrupts, process switching, inter-process communication, and even memory management down to the level of the 80x86 processor instructions, registers and features (actually if you add it all up, memory management takes up most of the book -- a good thing!). Furthermore there are chapters about essentials such as file systems and device drivers.

The book specifically and explicitly focuses only on the 80x86 PC architecture so if you're interested in Linux on different platforms or if you're looking for a generic Linux kernel book, this one's not for you. Also, if you're just starting out with Linux (whether it be as user, programmer or administrator), there's a lot of information in here that you don't really need to know.

An important part of the kernel that's missing from the book is how networking is implemented. This is understandable, because it would probably require another 900+ pages (that's how thick this one is) to cover in as much detail as what the book DOES cover.

All in all, as an intermediate Linux administrator/user and a novice Linux programmer, I thought this was an excellent addition to my collection, even though I skipped some of the truely low-level parts where the authors go into Pentium registers and stuff like that. The fact that "80x86" is consistently printed as "80 × 86" (notice the multiplication character replacing the letter "x") was not enough of a nuisance to take away any of the 5 stars that I'm giving this one.

A Valuable Resource5
The third edition of this valuable resource incorporates descriptions of the latest changes in the 2.6 Linux kernel series. There is simply nothing else out there resembling this work in either depth or breadth, and as such every developer active in Linux kernel work (or trying to understand how it all fits together) needs to have this book.

While there are a few other books out there that describe the Linux kernel on a conceptual level (a very few of which have quality), there is really nothing (recently) that examines the actual code at this level of detail (each edition keeps getting fatter.)

As academics the authors are interested in presenting a complete snapshot of the Linux kernel, and unravelling how it works. This is unlike in method (but complementary to) the engineer's approach of its excellent companion book from O'Reilly, Linux Device Drivers, by Corbet, Rubini and Kroah-Hartmann. They also focus more on the x86 architecture in order to be definite. Because of its focus on being an entire picture, understanding this book doesn't require extensive pre-knowledge of the Linux kernel, only a good general grasp of principles.

I have used the earlier editions as companion textbooks for classes on the Linux kernel, and intend on using this edition in the same fashion. Don't miss out on this unique book.