Docs |
Title |
Description |
Understanding the Linux
Memory Manager |
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. It is also available in PDF and plain text format. The graphs are
available here |
Code Commentary on the Linux
Virtual Memory Manager |
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. It is also available
in
PDF and plain
text formats. The graphs are available here |
The Basics (obsolete) |
This doc covers some basic principles of the VM system |
Buddy Algorithm (obsolete) |
This is a rough draft of how the buddy algorithm works. It
concentrates on page_alloc and just covers allocation and freeing
of pages. The initialisation will be covered later.
|
NUMA, pg_data_t and zones (obsolete) |
Explains what NUMA is all about and a brief overview of how the
pg_data_t structs are used to map areas of physical memory and
how zones divide them up
|
vmalloc/free (obsolete) |
Detailed account of how vmalloc allocates pages in linear address
space but not linear in physical memory
|
Slab allocator (obsolete) |
Detailed account on how the slab allocator works including how
kmalloc/kfree does it's work.
|