2.5 Linux中的分页机制
如前所述,Linux主要采用分页机制来实现虚拟存储器管理。这是因为:
·
Linux的分段机制使得所有的进程都使用相同的段寄存器值,这就使得内存管理变得简单,也就是说,所有的进程都使用同样的线性地址空间(0~
· Linux设计目标之一就是能够把自己移植到绝大多数流行的处理器平台。但是,许多RISC处理器支持的段功能非常有限。
为了保持可移植性,Linux采用三级分页模式而不是两级,这是因为许多处理器(如康柏的Alpha,Sun的UltraSPARC,Intel的Itanium)都采用64位结构的处理器,在这种情况下,两级分页就不适合了,必须采用三级分页。图2.28为三级分页模式,为此,Linux定义了三种类型的页表:
· 总目录PGD(Page Global Directory)
· 中间目录PMD(Page Middle Derectory)
· 页表PT(Page Table)
图2.28 Liunx的三级分页
尽管Linux采用的是三级分页模式,但我们的讨论还是以Intel奔腾处理器的两级分页模式为主,因此,Linux忽略中间目录层,以后,我们把总目录就叫页目录。