【问题标题】:Linux kernel: Where do the process page tables reside?Linux 内核:进程页表驻留在哪里?
【发布时间】:2011-09-18 18:49:49
【问题描述】:

仅供内核使用,它们应该只位于 PAGE_OFFSET 以上的地址中。但我正在阅读this 页面,在它的末尾(在 IRC 会议中)我读到了以下几行,这让我很困惑:

 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?如果是这种情况,用户空间进程不能访问它们吗?

【问题讨论】:

    标签: linux-kernel virtual-memory


    【解决方案1】:

    我认为 riel 想说的是,它们可以(几乎)驻留在物理内存中的任何位置——没有固定的映射。

    页表映射在内核虚拟地址空间中(即高于 PAGE_OFFSET),并且对用户空间不可见(正如您所指出的,这是有道理的,因为我们不希望用户破坏他们自己的页表)。

    看看这个相关的帖子: Does Linux use self-map for page directory and page tables?

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2017-04-18
      • 2013-11-10
      • 2013-07-23
      • 2023-03-29
      • 2015-10-24
      • 2016-10-15
      • 2015-02-17
      相关资源
      最近更新 更多