This page is a somewhat outdated page for the Linux Kernel 2.4 VM. The first two documents posted are the major bodies of work. They are not going to change any time in the near future. I was asked to write a book called "Understanding the Linux Virtual Memory Manager" which is available now to buy. The information here is out of date in comparison to the book and only kept here for historical reasons The book is published under the Bruce Perens Open Book Series so it is now available under the Open Publishing License.

For the more practical people looking to tinker with the VM, see VM Regress which is a framework tool for analysing, testing and benchmarking the VM and it might be of interest. For those actively reading the code, CodeViz is a call graph generating tool for C/C++ which was a big help for me when developing this documentation and comprehending the kernel code.

Title Description
Understanding the
Linux Memory Manager

PDF HTML Text
Finalised: July 14th, 2003
This document is an in-depth guide to how the VM in kernel 2.4.20 functions and the major components of it. It references the papers that describe the algorithms used and then explains the Linux specific version. The graphs used are available here. Again, the information here is out of date in comparison to the book.
Code Commentary on the
Linux Virtual Memory Manager

PDF HTML Text
Finalised: July 14th, 2003
This is a companion document to the Understanding book above. It is a detailed code commentary on most of the Linux VM to help give a detailed understanding of the code and the style. The graphs are available here