This is a set of notes I have amateurishly extracted from the book Understanding the Linux Virtual Memory Manager written by the esteemed Mel Gorman.
These are written for my own tastes and understanding so will likely not be useful for anybody else, but I am placing them here primarily as a record for myself, though if others find them somehow useful (2.4.22 fetishists perhaps? ;) then that's great too!
The book is licensed under an Open Publication License with the options "no substantial derivitives" and "no distribution for commercial purposes".
Though this is a (substantial) derivative, it is entirely without commercial aim of course, and designed merely as a study guide for myself.
NOTE: Whenever there is an architecture-dependent function/macro/data structure, the links I am including reference i386.
NOTE: For the time being, I am skipping the 'What's new in 2.6' parts of the book as I am focused on 2.4.22. Looking through these will be part of the next phase of my research where I translate from 2.4.22 to a recent kernel.
NOTE: I skip chapter 1 as this is introductory and doesn't contain many details of interest to me at this point.
- Introduction - skipped.
- Describing Physical Memory
- Page Table Management
- Process Address Space
- Boot Memory Allocator
- Physical Page Allocation
- Non-contiguous Memory Allocation
- Slab Allocator
- High Memory Management
- Page Frame Reclamation
- Swap Management
- Shared Memory Virtual Filesystem
- Out of Memory Management