Understanding the Linux Kernel and over 2 million other books are available for Amazon Kindle . Learn more

Sign in to turn on 1-Click ordering.
Trade in Yours
For a 6.25 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Start reading Understanding the Linux Kernel on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Understanding the Linux Kernel [Paperback]

Daniel Plerre Bovet , Marco Cesati
5.0 out of 5 stars  See all reviews (4 customer reviews)
RRP: 38.50
Price: 25.02 & FREE Delivery in the UK. Details
You Save: 13.48 (35%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 12 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it Wednesday, 3 Sept.? Choose Express delivery at checkout. Details


Amazon Price New from Used from
Kindle Edition 17.92  
Paperback 25.02  
Trade In this Item for up to 6.25
Trade in Understanding the Linux Kernel for an Amazon Gift Card of up to 6.25, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

Nov 2005

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.

Frequently Bought Together

Understanding the Linux Kernel + Linux Device Drivers + Building Embedded Linux Systems
Price For All Three: 69.21

Buy the selected items together

Product details

  • Paperback: 944 pages
  • Publisher: O'Reilly Media; 3 edition (Nov 2005)
  • Language: English
  • ISBN-10: 0596005652
  • ISBN-13: 978-0596005658
  • Product Dimensions: 23.4 x 17.8 x 4.6 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 28,264 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Authors

Discover books, learn about writers, and more.

Product Description

From the Publisher

This new edition covers Version 2.6 of the Linux kernel, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. Understanding the Linux Kernel provides a guided tour of the code that forms the core of all Linux operating systems. Beyond the functioning of the code, the book explains the theoretical underpinnings for why Linux, and many other operating systems, do things the way they do.

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

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Customer Reviews

4 star
3 star
2 star
1 star
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
8 of 8 people found the following review helpful
5.0 out of 5 stars Terrific Book 27 Oct 2009
Format:Paperback|Verified Purchase
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.
Comment | 
Was this review helpful to you?
3 of 5 people found the following review helpful
5.0 out of 5 stars Experienced sysadmin topics 22 Oct 2008
This book is excellent way to get know how Linux kernel works and what it does. For person like me, sysadmin for some years already, the book clarifies what makes operating system to behave some way or other. I will not recommend this book for any junior sysadmin, but for thous who have experience and whom are asked to help when systems work strange way the book can give really good background knowledge.

For example after reading this book I could understand slocate cronjob and page table growing relation. Of course removing slocate from cron is the fix, but knowing why it helps and what it does is related to slabs. Even monkey can fix things without understanding what he is doing or why, that is why the book is so important.

Since this and Solaris internals are only books about this subject (what I know) there is no other option than give five starts. I hope in future there will be even better and less dry kernel internal books. Meanwhile this is one of the best.
Comment | 
Was this review helpful to you?
11 of 24 people found the following review helpful
5.0 out of 5 stars It is the ways to learn UNIX 27 Feb 2006
Everybody likes easy to read books and I also assume that learning UNIX is not necessarily has to be a struggle. This book stood up to my expectations almost perfectly: it is very well written and clearly expressed work. It does not overwhelm with technical details and does not press too much. It is VERY descriptive and takes you snoothly from subject to subject. I also followed an advise in someone's review and purchased "UNIX Essentials" DVD that is complete unix course recorded (I found on Amazon.com but since they do not ship outside US I ordered it directly from CustomFlix.com). These two nicely complement one another. You watch it and you read it. If you didn't catch it from the first try you watch it again and read it again. In two months I found myself confident to that extend that gave advises to our system administrator and he accepted them because there were subjects that he wasn't completely sure. What I can say, in three month I passed my first interview and got a job! Sure it is a way to start and there are much more advanced reading, however these two provide you with the background !
I can't overstate how much I have learned from them. Don't be naive, though. You will have to learn and memorize many things. The fact of owning neither book nor DVD will not make you knowledgeable, but if you will work it trough, trust me, you will surprise many people around!
Comment | 
Was this review helpful to you?
0 of 3 people found the following review helpful
5.0 out of 5 stars One of linux kernel fundamentals 21 Sep 2010
By dave
It happens to hack kernel, a lot of times following suggestions of some forum.
But in fact, what are you doing exactly? And why things work in that way?

These are the questions that brought me to buy this book; let's understand better why linux is so great!
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.3 out of 5 stars  46 reviews
89 of 93 people found the following review helpful
3.0 out of 5 stars Messrs Bovet and Cesati's 'Core-Dump' on the LINUX kernel 10 July 2011
By Reza Mostafid - Published on Amazon.com
This book deserves three stars for the following reasons:

The three stars come from:

1.) The book does walk you through from the higher level kernel
functions all the way to what happens to x86 register set
during a process switch ( ....these details constitute the
'soul' of an OS IMHO ). So you can gain some insight in how
the 'naked' iron ( x86 ) is made into a higher level
LINUX virtual machine ( using Tannenbaum's analogy ).

2.) The book contains a tremendous wealth of information, far
more than most of the other few and far between titles
on the subject

3.) The book covers the aforementioned info in far more detail
than most of the other few and far between titles on the

The remaining two stars were not given because:

4.) The information in the book is organized in _the_
most haphazard and unorganized way possible....scattered
all over the place with lot's of cross-references.

5.) There is a lack of effort ( or perhaps ability ? ) on the
part of the authors to properly explain things.
The information is presented more akin to a 'core -dump'
of their brains. It's like "here are the facts folks....
...you work it out on your own".
Complex relationships and concepts are explained without
the use of any didactics whatsoever. Each chapter is mostly
just a statement of facts following one after the other
..."here is 'struct task_struct'.. it has member 'sighand'
..." e.t.c.

Sure I worked my way through a lot of the information and `grepped`
a lot of source code and found a lot of additional detail and
info regarding the kernel all by myself..(.but I am an embedded
engineer with 18 years of experience ).

The point is when I pay for a book or pay someone to present / teach
something to me, I don't expect them to dump the information and
expect me to work it out by myself....I expect them at the very least
to put some work into organizing and presenting the material in
a way that helps the student.

I don't expect to be spoon-fed and I don't mind working hard to learn
something however I believe the author / teacher should spend some
effort as well and only after having done their part is the author
entitled to tell the student:

"O.K. I've shown you the way...the rest you go and find out on
your own...put some work and effort in and make what we have presented
you "your own".

The book is therefore extremely inefficient in conveying the
information and detail it contains. It is not easy to read!
The reader is left spending a lot of time grinding along effectively
organising the information on their own. More efficient would
be to help the reader/student to learn enough to begin exploring
and creating on their own.

Just to give others an example of a well-written book on a similar
topic which

1.) Contains lot's of detail
2.) Is very complete in its coverage of topics
3.) Is well organised with an extremely useful 'Index' section
4.) Is written in a way that gets you started on the topic and
gets you involved in doing your own research

I would like to mention

The LINUX Programming Interface
by Michael Kerrisk

I read this book in about 5 weeks and understood enough to be
able to write my own proprietary protocol on top of TCP/IP
as well as a mini-server and lots of other bits and pieces with
literally no previous LINUX programming experience.

I had enough information imparted on me by the author to even
assess the feasibility of embedding my code using u-Clibc and
to make it work on an embedded board with a footprint of
a passport sized photo.

Of course I realize that M.Kerrisk's TLPI has nothing to do
with understanding the LINUX kernel but it nevertheless
serves the purpouse to demonstrate to the authors of
the reviewed title 'Understanding the LINUX Kernel'
how to present a vast and complicated topic to an audience
at a lower technical level of expertise than yourself and
help to raise their knowledge a little closer to your level
in the process.

I believe this is why most of us pay our hard earned cash
for, when buying a technical book.

Finally for those wishing recommendations on books which are
far more readable whilst also shedding insight into the
kernel's inner workings:

- Linux Kernel Development
by Robert Love ( 3rd Ed. )

- Professional LINUX Kernel Architecture
by Wolfgang Mauerer

- LINUX Device Drivers
by J. Corbet, A. Rubini and G. Kroah-Hartman

Regardless of what book you choose to work with, understand
that you still need to browse the source of the kernel
and brush up on your grepping and reg-ex skills.
Work at it and you'll get rewarded.
47 of 49 people found the following review helpful
5.0 out of 5 stars Excellent, but not for beginners 2 Aug 2006
By J. Goudsmit - Published on Amazon.com
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.
59 of 64 people found the following review helpful
5.0 out of 5 stars A detailed and comprehensive explanation of the inner workings of the latest 2.6 Linux kernel 10 Feb 2006
By A. Papadimitriou - Published on Amazon.com
Format:Paperback|Verified Purchase
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


"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.
19 of 20 people found the following review helpful
5.0 out of 5 stars A Valuable Resource 30 Nov 2005
By Jerry Cooperstein - Published on Amazon.com
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.
14 of 16 people found the following review helpful
5.0 out of 5 stars No Kernel debugging :( 12 Feb 2006
By Nitin Gupta - Published on Amazon.com
One thing that's really missing is a nice chapter on Kernel debugging -- using some existing kernel debuggers and how they all compare, interpreting those OOPS messages -- everything that goes with kernel hacking!

This book covers VMM so comprehensively that it's really meant for those who _actually_ want to work on kernel, so a 'Kernel Hacking' chapter was a must.

Otherwise this book is just perfect - I give it 5 stars :)
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category