页面目录表中低22位(0~21位)的作用是什么?

时间:2014-01-21 14:42:39

标签: linux kernel

我知道内核虚拟地址中使用的高10位。
谢谢

1 个答案:

答案 0 :(得分:1)

我觉得你有点困惑。内核地址空间高于0xC0000000地址。页面目录上的位指向页面表。类似于32位架构的页面大小为4KB:

  1. 地址中的前十位指向页面目录
  2. 地址中的后十位指向 Page Table
  3. 地址中的最后12位指向 Page
  4. 让我们看看(粗略地)虚拟地址0x2003ff01的完成情况:

    1. 前十位:0x80作为偏移添加到全局页面目录(由x86体系结构中的cr3寄存器指向)。存储在那里的地址必须与进程页表对应。
    2. 后十位:0x3FF对应于Page Table。此偏移量将添加到页面表指针中,您将获得所需页面的地址。
    3. 将最后12位添加到Page的指针,然后获得您要查找的内存单元格。
    4. 这或多或少是在Linux中完成该过程的方式。我错过了很多的规范,只是想给出一般解释。

      希望这有帮助!