Published: mer. 04 décembre 2013
Understanding the Linux Kernel Third Edition,Daniel P. Bovet and Marco
Cesati P.h.D.,O'Reilly,November 2005,0596005652
This wonderful piece of technical work from Daniel P. Bovet and Marco
Cesati explains the internal workings of the Linux Kernel, one of the
most fascinating Open Source Projects out there. The book does not shy
from going into details and covers a wide area of topics including:
The Virtual File System
Interrupts and Exceptions
I/O and device drivers
Booting a functioning system
Inter process communication
In a nutshell great book if you are a developer yearning to learn about
how the Linux kernel works.
Should I read it?
If you are seeking to learn about the Linux Kernel and what the code
does it is a great book, if you want to learn about Linux in general not
so much. The book requires that you have a good C programming skills and
some basic knowledge of x86 architecture and bash programming. To
summarize you should read it if you are:
Aspiring to become a kernel developer
System developer on Linux
Administrator wanting to take advantage of low level aspects of
Linux hobbyist curious about the internal of the kernel
However you should not read this book if you are:
New to Linux
Linux expert seeking more knowledge about device driver development
or network systems development
What is good? :
The book has no fear to cover the Linux Kernel in detail. It covers
many different topics and goes all the down to the code.
Focuses on x86 architecture and covers topics such as Ext2/Ext3,
meaning they covers aspects of the Linux kernel that concerns the
majority of Linux users.
To help explain complex algorithm, authors have included diagrams
and they have simplified the algorithms to cover the essential
What is bad? :
The book covers Linux in too much detail, which albeit I have
mentionned as a good thing is also a bad thing. Because of the level
of detail it is hard book to read.
The structure of the book is strange. It is difficult to understand
why the chapters are covered in the order given.
Often the book will make mention to topics to be covered later,
making the read a bit difficult. However if one has a basic
understanding of the Linux kernel it is not a big problem.
A bit out of date. Many things have changed in the kernel, for
instance the scheduling algorithm. However bare in mind that Linux
moves so fast that it is impossible to write a book that covers it
in such way that it stands the test of time.
Did I learn from it?
Yes definitely, I have now a much better understanding of what the
Kernel does. Also the code is less obscure to me, meaning that if I want
to read, or patch the kernel code, it should be significantly easier.
The kernel is now a much more complicated beast that I initially
thought. I have learned about the Kernel at University but no one has
gone to such detail. The memory management alone could be the topic of a
university course. There are few fun things that I have discovered:
Why we put #! in front of script. There is a good reason and you
will learn it if you read the book.
What happens when you start the computer. There is an entire section
dedicated into explaining step by step the code that is executed
from the moment you press the power on button to when PID 1
(upstart, systemd, ...) is executed
The advantages and disadvantes of many linux Inter-Process