之前 page table 一直理解的不好,最近在重读 xv6, a simple Unix-like teaching operating system 的时候发现,page table 就是一个特殊的 hash-map,虚拟地址的一部分作为 page table 的 key(index),最后几位作为 page 内的 offset(可以保证一个 page 内的内存是连续的,并节省内存)。而多层 page table 是为了 lazy allocate memory 从而达到节省内存的目的。
写了篇文章作为记录:https://github.com/yfractal/blog/blob/master/blog/2025-01-01.md