A slightly unusual book from Prentice-Hall. If you peruse a list of their recent offerings, this book stands out as rather more specialised. Certainly, in general there is no shortage of linux books, from a variety of publishers. But typically such books are aimed at using linux or they describe applications built atop it. Whereas the technical ability and interest in actually understanding and changing any operating system (not just linux) acts as a tremendous barrier. Hence, the potential audience for Gorman's book is quite exclusive. An upside is that it reduces the potential competition from other authors and publishers. Gorman is attempting an outreach to potential linux developers. The book has two parts. The first explains key concepts for the VMM. He quickly gets into the issues, with little preamble. In other words, you need at a minimum to be fluent in C, and have some acquaintance with the ideas of memory management, though not necessarily with linux. Each algorithm in this book is not that intricate. As a rough guide to difficulty level, if you can understand a typical algorithm from the texts by Knuth or Aho or Sedgewick, then you should not have any trouble here. The second part of the book has code listings with accompanying detailed commentary. This is different from, and substantially improves upon the inline comments, which are sparse to non-existent in the exampled code. To some of you who want to try changing code, the second part's annotations may be the crucial portions of the book. It is rare to see such extensive commentary of source code in book form.
If the title of the book is a hint that it is not for the masses, then the additional information one is presented with is a definite confirmation of this fact.
The book is an in depth look into intricate workings of one of the most complicated and sophisticated parts of any OS that supports virtual memory concepts. As such, it is not an easy read for people who are not familiar with programming and general OS concepts, and since, to be honest, most people today do not fall into this category, this book has a very specific audience. In short, if you do not already know how TLB operates, do not even look at it.
The text itself is nicely organized, hierarchy is well defined, concepts explained. Detailed description of logic is supported by the code examples that are dissected in detail, and in my mind provide an excellent learning resource.
One drawback that caused 4 stars, instead of 5, is the lack of common terminology; rather, author explains in his own words some of the details. As such, these explanations tend to be unnecessarily complicated, burdened by the re-defining of the every day language that is used in a wrong way.
Overall, a very, very good resource on Linux VM, and a definite must for a serious kernel developer.
It is funny that the whole book is printed and binded in the reverse order i.e. the last page is the first page and first page is the last one. I need to start reading from the back. I didnt notice this till now as I was busy reading other books and just started to read this book. I was so shocked and surprised that AMAZON sells such books. Hope they replace the copy with a good one.