GNU/Linux is increasingly being seen as a viable, economical alternative to proprietary operating systems, and its market penetration, especially on servers, is increasing. To continue to grow Linux’s importance as a secure, low cost kernel, much more serious programmers are needed not only to keep improving it, but to develop stable drivers and most importantly to help continue the rapid Linux march to the Desktop.There is where Robert Love‘s new book comes in, Linux Kernel Development, 2nd edition, to introduce experienced programmers into the world of the Linux Kernel. The author is a very experienced Linux Kernel engineer, working for Novell.
This second edition is up to date, with just over 400 pages. It is easy to read, and might I dare say, even quite pleasant at some points. The book explains in detail all the major components of the current Linux Kernel (2.6) and in several cases compares it with older versions or other systems. It starts gently with some history and basic details and then dives into advanced topics such as scheduling of multiple programs on multiple processors, the interrupt system, and continues to memory management and the file system and various other interesting subjects, including debugging. At the end it has three appendixes and a very detailed index.
Every chapter explains in detail how a Kernel subsystem works, sometimes using very nice examples. While it contains many source examples, practically one per page, it is not swamped in source code.
The author succeeds in making even the most complicated subjects like multiprocessing synchronization, locking and the dreaded deadlocks, easy to understand using simple and nice examples. I found most topics clear and easy to digest.
But nothing is perfect in this world, so I have a few criticisms, for this otherwise well written book. It would be nice if it had more actual examples in some areas. For instance, it explains in great detail so much about Bottom Halves and how they work, even how they used to work, but beyond the theory I would like to see some actual examples of Bottom Halves, or even a list of common Bottom Halves in Linux, etc. Generally, maybe I’m asking too much but it would give a more complete picture in some chapters, if after the lengthy detailed theory of how a mechanism works and how the reader can make their own, it had more actual examples of the existing mechanisms built-in to Linux.
Also it would be great if some comparisons on all these internal operations were made to the market leader, Microsoft Windows XP.
The Linux Kernel is a huge subject, without underestimating the great job the author has put in these 400 pages, I would expect a book for the Linux kernel to be around 700-800 pages including a reference list or chart on all parts of the Kernel and their file names. Maybe in the next edition? Also, although this is not a specialized driver-writing book, it should have at least one chapter about drivers, as it is such an important subject.
On the other hand, this is a very good book, a good addition to a programmer’s bookshelf, it succeeds in describing the Linux Kernel in good detail, but in not too much detail. I am a newcomer to the Linux world, but have extensive experience on other operating systems. This book gave me quickly a good understanding of how the Linux Kernel works in detail, without boring me with endless source code or being too abstract. In other words it is well balanced in the level of detail it provides on its various subjects.
This is a serious book about a serious deep subject, if you are an experienced programmer wanting to enter the depths of the Linux Kernel or just you want to see how really does this Linux thing work, then I personally strongly recommend this book to you, as it was an enjoyable and quite thought provoking read for me.
Buy “Linux Kernel Development“
About the Author
Michael Krech is the Director of Intelligent Firmware Ltd, Surrey, U.K. and an operating systems designer, having written a couple himself.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.