The book is *extremely* useful for understanding the linux kernel operation, when away from your terminal. Although I agree with some of the nit-picks in the reviews below (and have a few of my own) I would not give the book a *bad* review.
Yes, it follows the format of the John Lions "Commentary On UNIX 6th Edition", showing the source code (with line numbers) first, followed by in depth commentary (with references to line numbers). An extremely good format. Too bad they missed some aspects of the Lions format, such as cross reference tables, and using a fixed number of lines per page.
The source code is easily 2/3's of the book. However, it's necessarily included to a) let the source speak for itself as much as possible, and b) to freeze the code for the annotated cross references, since the linux source is in constant flux.
Organizationally the book is missing a few things. In fact, frustratingly so because they could have made many things easier if they'd only followed the wisdom of the Lions book;
1) A line number/subroutine/filename cross reference table. This is an *important* aspect of the original Lions.
2) It would be nice if the line numbers had anything to do with the page numbers, since the line numbers aren't a fixed number per-page (In Lions there were 50 lines per page, so it was easy to scan for line numbers by flipping pages; 4500, 4550.. the linux book numbers jump all over; 13211, 13403.. yuck!)
3) Each page should have a title at the top indicating which file is being listed. Again, see Lions..! As it is, you have to flip all around looking for section headings, which incidentally appear in random positions on pages.
4) Someone should have taken the trouble to embolden function headings. It's important to identify the start of subroutine headings. The Lions book didn't need this because the AT&T code was easier to determine function headings due to their commenting style
Regardless, the Linux book is very handy for studying the kernel in an offline manner. They should've done a little more for the reader, though. But thankfully, the source speaks for itself.
The kernel version is 2.2.5; it says so in the Introduction on page xv. Granted, it doesn't say it on the cover, it probably should :/ Also, this book is intended for core kernel (scheduling, processes, filesystem), not for device drivers. DD's would be nice, but in a whole different book! I don't fault them for that.
Certainly a hyperlinked version of the source on the CD would've been nice. However, I did get one hell of a kick out of the oldest version of the linux code on the CD as well as the current; a pleasant surprise for me, esp. in the context of this book! Very revealing about how the kernel developed.
I hope in the second edition, the authors take our comments into account.