This title has been around for a while, but the 2nd edition is new and covers kernel 2.4; the book is commendably up to date, but for how long? Kernel 2.5 (the version in development) is in feature freeze with 2.6 (the next major release that 2.5 will turn into when it's considered stable) due by the summer. Such problems are the bane of people writing about rapidly developing software.
Obsolescence isn't the only problem caused by the subject matter; an OS kernel is very complex. Despite what the introduction says, I don't think this is a good book for anyone who's just curious about the Linux kernel; it's a book that has to be studied rather than read and requires a good deal of motivation, making it more suited to academics and those wanting to get involved in kernel development. A reasonable knowledge of C is required and knowledge of x86 architecture and assembly language is helpful.
The subject matter is loosely divided into memory management, processes, interrupt handling, calls between processes and to the kernel, filing and networking. The divisions between these subjects are somewhat blurred and they encompass too much for each to be covered neatly in its own chapter, so the subjects appear somewhat interleaved.
I found this book very difficult to get to grips with, but I feel confident that it's of a high technical standard and that it would be impossible to cover the Linux kernel so thoroughly without being difficult to read. Therefore I hope that someone else will offer to give it the more in-depth review I think it deserves.