Linux 什么';低22位(0~21位)在页目录表中的作用?

Linux 什么';低22位(0~21位)在页目录表中的作用?,linux,kernel,Linux,Kernel,我知道内核虚拟地址中使用的高10位。谢谢你我想你有点困惑了。内核地址空间高于0xC0000000地址。页面目录上的位指向页面表。在页面大小为4KB的32位体系结构上类似于此: 地址中的前十位指向页面目录 地址中的第二个十位指向页表 地址中的最后12位指向页面 让我们看看虚拟地址是如何(大致)实现的0x2003ff01: 前十位:0x80作为偏移量添加到全局页面目录(由x86体系结构中的cr3寄存器指向)。存储在那里的地址必须与进程页表相对应 第二个十位:0x3FF对应于页表。此偏移量被添加到页表

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

我想你有点困惑了。内核地址空间高于0xC0000000地址。页面目录上的位指向页面表。在页面大小为4KB的32位体系结构上类似于此:

  • 地址中的前十位指向页面目录
  • 地址中的第二个十位指向页表
  • 地址中的最后12位指向页面
  • 让我们看看虚拟地址是如何(大致)实现的
    0x2003ff01

  • 前十位:0x80作为偏移量添加到全局页面目录(由x86体系结构中的
    cr3
    寄存器指向)。存储在那里的地址必须与进程页表相对应
  • 第二个十位:
    0x3FF
    对应于页表。此偏移量被添加到页表指针中,您将获得要查找的页的地址
  • 将最后12位添加到页面的指针上,就得到了要查找的内存单元
  • 这或多或少是在Linux中完成该过程的方式。我错过了很多说明,只是想给大家一个大概的解释

    希望这有帮助

    请参见此处接受的答案: