第15章 进程地址空间

围绕mm_struct、VMA、区域树/链表、find_vma、mmap/munmap和页表解释进程地址空间。 覆盖19个正式目录层级。

为什么从这个问题开始

、、、、共同构成本章坐标。围绕mm_struct、VMA、区域树/链表、find_vma、mmap/munmap和页表解释进程地址空间。

原书基于Linux 2.6.34,正文先还原书中对象、API和控制路径,再把现代内核差异作为显式迁移检查。CFS、tasklet、BKL、基树、单队列块层、旧回写线程等机制不能被现代实现悄悄替换,也不能不加说明地当作当前代码。

常见误区

四类样本与验收

样本只改变什么必查证据通过条件
基线固定提交、配置与输入对象、上下文、状态和日志与预测一致
边界容量、亲和、长度或时序第一处饱和或拒绝边界可解释
失败一个指针、锁序或异步故障首错栈、字段和责任层故障可定位
恢复撤销设置或恢复快照残留对象与同输入重放回到基线

练习

小结

  • mm_struct:连接“定位内存描述符”的源码对象与运行证据。
  • VMA:连接“枚举VMA区间”的源码对象与运行证据。
  • mmap:连接“查找相交区域”的源码对象与运行证据。
  • munmap:连接“创建映射”的源码对象与运行证据。
  • 页表:连接“更新页表”的源码对象与运行证据。
  • 本页19个正式目录层级全部进入源码实验链。

术语表

讨论

评论区加载中…