Linux Kernel Development (3e)

 

Author: Robert Love
Publisher: Addison Wesley, 2010
Pages: 480
ISBN: 978-0672329463
Aimed at: Developers interested in the Linux OS
Rating: 4.5
Pros: Good introduction to Linux in general
Cons: Misleading title
Reviewed by: Harry Fairhead

The first question to ask is why would you be interested in the Linux Kernel?

Most programmers are happy developing applications that make use of the Kernel and really don't want to meddle with its inner workings.

Part of the answer, and it's a big part, is simple curiosity. Knowing how an operating system works is a great eye opener to the world of systems programming and there are lots of ideas that have a more general applicability.

There are three other possibilities for why you might want to read this book. One is if you are taking or teaching an operating systems course, the second is that you are developing device drivers and need a background and the other is if you actually want to do some Kernel development. My guess is that this last reason is in the minority and most readers are either just curious or involved in a course.

Banner

This is a beginner's book in the sense that it really does start from the beginning and explain features of the Kernel as it goes along. By the end of Chapter 2 we have learned the history of Linux and looked at various development issues to the point were I was really wanting to get started on finding out.

The trouble is that the next two chapters describes process management and scheduling- there is some code but it is explanatory code. The point is that you don't actually get to develop any part of the Linux Kernel as part of the book.

Nowhere is there a section that says let's modify the scheduler or tinker with the filing system.  This might be a bit ambitious but it is a reasonable assumption that a book called "Linux Kernel Development" might actually have some examples of development rather than just explanations and expository code.

The book continues on this way covering the standard topics - system calls, data structures, interrupts, synchronisation, timers, memory management, file systems, block I/O, address space, page cache, devices and modules, debugging and portability. All good stuff but still theory anchored in Linux-based examples.

You could take this theory and take it up to the next level and start to modify the Linux Kernel but this would take a lot of time and effort to even find the code you needed to modify.
Similarly the book talks its way around device drivers and where they fit in but it doesn't give you an example of actually creating or even modifying one. As a result the book is good for background reading for anyone interested in device drivers but you will need another one to get you started.

Don't misunderstand the criticisms - this is a really good book and one that I'm pleased to have on my bookshelf. It would make a really good part of any course on practical operating systems and system programming in general. It  is also full of lots of helpful background information, historical wisdom and general knowledge - it also happens to be good fun to read if you are interested in the subject. You will however need some help in actually getting to grips with the Kernel - it's another step on the road.

Even so - highly recommended.

Banner


Software Architecture In Practice

Author: Len Bass, Dr. Paul Clements and Rick Kazman
Publisher: Addison-Wesley Professional
Pages: 464
ISBN: 978-0136886099
Print: 0136886094
Kindle: B094CPJ96B
Audience: Software architects
Rating: 4.5
Reviewer: Kay Ewbank

This is the fourth edition of a book widely regarded as a classic since its firs [ ... ]



Learning Progressive Web Apps

Author: John M Wargo
Publisher: Addison-Wesley
Pages: 272
ISBN: 978-0136484226
Print: 0136484220
Kindle: B084T4JK3S
Audience: Capable JavaScript programmers
Rating: 4.5
Reviewer: Ian Elliot
PWAs - I'm not even sure what they are?


More Reviews

Last Updated ( Monday, 17 March 2014 )