理清 Linux 内核内存管理 · 四层全景
从物理硬件到分配器,内核内存管理分为四个层次:
🔹 物理硬件层 — 32GB 物理内存,划分 ZONE_DMA32 / NORMAL,mem_map 存 838 万个 struct page
🔹 内核虚拟空间层 — 128TB 虚拟地址,直接映射 + vmemmap + vmalloc,通过 MMU 转换
🔹 管理数据结构层 — zone → free_area → free_list → struct page.lru,伙伴系统串联空闲页
🔹 分配器执行层 — kmalloc (SLAB) / alloc_pages (Buddy) / vmalloc,各司其职
💡 核心公式:PFN → struct page,由 SPARSEMEM 模型寻址;Buddy 系统 按 order 合并拆分,是所有分配的根基。
收藏这张图,轻松搞懂内核内存“从硬件到接口”的完整脉络!📚