仅由内核使用,它们应该只位于PAGE_OFFSET之上的地址中。但我正在阅读this页面,并在最后(在IRC convo中)我读了以下几行,这让我很困惑:
saxm> riel: so where do page tables reside? Surely not below PAGE_OFFSET? Somewhere above PAGE_OFFSET+896mb then?
riel> they could reside anywhere
saxm> anywhere from 0->4gb (on x86 with no pae)?
riel> saxm: yeah
我的意思是,为什么他们会低于PAGE_OFFSET?如果是这种情况,用户空间进程是否能够访问它们?
答案 0 :(得分:4)
我认为瑞尔试图说的是,他们可以(几乎)驻留在物理内存的任何地方 - 没有固定的映射。
页面表映射到内核虚拟地址空间(即在PAGE_OFFSET之上),并且对用户空间是不可见的(正如您指出的那样,这是有意义的,因为我们不希望用户破坏他们自己的页表)。 / p>
看一下这篇相关文章: Does Linux use self-map for page directory and page tables?