分类: LINUX
2008-10-17 14:21:02
Linux 采用了一种同时适用于32 位和64 位系统的普通分页模型。正像前面“64 位系统中的分页”一节所解释的那样,两级页表对32 位系统来说已经足够了,但64
位系统需要更多数量的分页级别。直到
• 页全局目录(Page Global Directory)
• 页上级目录(Page Upper Directory)
• 页中间目录(Page Middle Directory)
• 页表(Page Table)
页全局目录包含若干页上级目录的地址,页上级目录又依次包含若干页中间目录的地址,
而页中间目录又包含若干页表的地址。每一个页表项指向一个页框。线性地址因此被分
成五个部分。图2-12没有显示位数,因为每一部分的大小与具体的计算机体系结构有关。
对于没有启用物理地址扩展的32 位系统,两级页表已经足够了。Linux 通过使“页上级
目录”位和“页中间目录”位全为0,从根本上取消了页上级目录和页中间目录字段。不
过,页上级目录和页中间目录在指针序列中的位置被保留,以便同样的代码在32位系统
和64位系统下都能使用。内核为页上级目录和页中间目录保留了一个位置,这是通过把
它们的页目录项数设置为1,并把这两个目录项映射到页全局目录的一个适当的目录项而
实现的。
以下部分暂略