A programmer wanting to understand the workings of the Linux VM today literally has no choice but to study the kernel source code, line-by-line - an excruciatingly difficult and time-consuming task. This book dedicates itself to explaining, in detail, how the memory manager is implemented in Linux, thereby cutting down the time needed to understand it from many months to mere weeks. The Linux VM is the single most important component of the Linux kernel. The behavior of the VM affects all other kernel subsystems, and has a dramatic impact on overall system performance. This book is unique in that not only does it describe the Linux VM itself in unprecedented detail, it also includes the theoretical foundations for it which is of interest to both developers and students but has been omitted from recent Linux kernel related material. It is split into three parts. The first part begins with an introduction on how to approach reading the code of an open source project. It then provides a detailed description of the VM architecture with the aid of numerous diagrams and call graphs, which is suitable for people who need a clear understanding of how the VM functions. The second part is a detailed line-by-line description of the C source modules (source code commentary) that implement the VM in the Linux 2.4 kernel. The third part describes new features in the upcoming 2.6 kernel.
I gave this three stars because it is the most complete overview of the Linux mm system, but it is highly technical for a beginner to mm development. This is unfortunate because they are the target audience. If you were proficient with the mm system you would simply peruse the source instead for your needs. Still, though, it started as an MS thesis so I can't really complain. It was helpful for me, albeit with a steep learning curve.
If you have a solid understanding of virtual memory management concepts this is an EXCELLENT way to understand the 1000 foot view of how it's implemented in Linux. However, there are a few concepts this book doesn't touch that exists in the mainline kernel now including croups, maple trees and huge pages but I'm sure other things as well.