2011-06-20 60 views
1

仅供内核使用,它们只应位于PAGE_OFFSET之上的地址。但我读this页,并且它的端部(IRC康沃)我读了下面的线,真正让我感到困惑:Linux内核:进程页表在哪里?

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?如果情况是这样的话,用户空间进程是不是可以访问它们?

回答

4

我想瑞尔想说的是,他们可以驻留(几乎)任何地方物理内存 - 有没有一个固定的映射。

页表被映射到内核虚拟地址空间(即高于PAGE_OFFSET),并且对于用户空间不可见(正如你指出的那样,因为我们不希望用户打开他们自己的页表)。

看一看这篇相关文章: Does Linux use self-map for page directory and page tables?