Memory management/Introduction

From WhitixDoc

Jump to: navigation, search
Layers of the virtual memory subsystem of Whitix, which handles memory management. Layers in gray are architecture-specific in some parts.
Layers of the virtual memory subsystem of Whitix, which handles memory management. Layers in gray are architecture-specific in some parts.

Memory management in Whitix involves three separate layers: physical page allocation, virtual memory mapping and the various subsystems that use the virtual memory mapping functions. All the memory system calls interact with the top layer of the virtual memory subsystem. Most kernel code does not interact with the bottom two layers, and instead uses the slab allocator to fulfill dynamic memory allocation needs.

Most of the memory management code (the term virtual memory subsystem is used interchangeably) is located in the memory/ directory, apart from the virtual memory mapping code, which is located in arch/<arch>/mm/.

The most basic layer of the subsystem is the physical page allocator, which returns page addresses and handles allocation and deallocation of physical memory. The next is the virtual memory mapper, which handles the translation from virtual memory to physical memory (including managing page directories and page tables for different processes). Three different layers use the virtual memory mapper; these are the file memory mapper, the slab allocator and the shared memory layer.

Whitix does not yet support paging to disk. Developers are welcome to add this feature.

Developer manual > Kernel overview > Memory management/Introduction
Personal tools