Skip to content

第四卷:内景天地

修炼阶段: 元婴期内核焦点: 内存管理 (mm/)

卷首语

元婴修士,内景自成天地。

虚拟内存是一场精妙的幻术——你以为自己拥有无尽的疆土,实则一切都被页表映射到有限的物理内存之上。页 fault 是觉醒的契机,OOM 是天劫的降临。

这是最凶险的境界。十修九死,绝非虚言。

本卷章节

标题简介
五十六内景初开虚拟内存的基本概念,mm_struct 登场
五十七页表经脉页表结构(Sv39),PTE 的每一个 bit
五十八虚实之映虚拟地址到物理地址的翻译过程
五十九内存宫殿VMA(vm_area_struct),进程的地址空间布局
六十mmap 之术mmap() 系统调用与需求分页
六十一页 fault缺页异常的处理流程
六十二写时复制COW 的深层实现与页表引用计数
六十三匿名之页匿名页与零页的特殊处理
六十四文件之页文件映射与 page cache
六十五页面回收LRU 链表与页面回收策略
六十六kswapd内核交换守护进程
六十七交换之术swap 机制与 swap cache
六十八页分配器伙伴系统(buddy system)
六十九SlabSlab 分配器与 kmalloc/kfree
七十vmallocvmalloc 与内核虚拟地址空间
七十一内存映射内核内存映射与 remap_pfn_range
七十二大页大页(Huge Pages)机制
七十三NUMA 内存NUMA 内存分配与 mempolicy
七十四OOM 杀手OOM killer 与 oom_score
七十五内存泄漏内存泄漏检测与 kmemleak
七十六内存压缩内存碎片整理(compaction)
七十七透明大页透明大页(THP)机制
七十八内存调试KASAN 与内存调试工具
七十九内存之道内存管理的设计哲学
八十元婴圆满内存管理全貌与修行总结

涉及内核源码

  • — 页面 fault 处理
  • — 内存映射
  • — 页分配器(伙伴系统)
  • — 页面回收
  • — OOM 杀手
  • mm/slab.c — Slab 分配器
  • — vmalloc
  • — swap 缓存
  • — 内存压缩
  • — 内存管理数据结构
  • arch/riscv/mm/ — RISC-V 架构相关内存管理

以修仙之名,悟内核之道