内存管理是内核最复杂同时也最重要的一部分,其特点在于非常需要处理器和内核之间的协作(所需执行的任务决定了二者必须紧密合作)。
内存管理的实现涵盖了许多领域:
- 内存中的物理内存页的管理;
- 分配大块内存的伙伴系统;
- 分配较小块内存的slab、slub和slob分配器;
- 分配非连续内存块的vmalloc机制;
- 进程的地址空间。
内存寻址
本部分我们将详细叙述 80x86 微处理器怎样进行芯片级的内存寻址,Linux又是如何利用寻址硬件的。
内存地址
我们偶尔会引用内存地址作为访问内存单元内容的一种方式,但是,当使用 80x86 微处理器时,我们必须区分以下三种不同的地址:
逻辑地址(logical address)