C 可以在linux机器上查看页表吗

C 可以在linux机器上查看页表吗,c,linux,operating-system,C,Linux,Operating System,最近我读到页表是每个进程的实体,我在想,是否可以在Linux机器上查看特定进程的页表? 我已经读到一些寄存器中有一个对页表的引用?在x86上,有一个指向进程页表的cr3寄存器。但是,您不能在ring-0之外访问它,因此您必须依靠/proc/self/pagemap之类的东西来了解页面表 如果您只想查看流程中映射的内容,请查看/proc/self/maps。 如果您确实想了解底层物理帧,请查看/proc/self/pagemap 以下是关于pagemap文件的一些更详细的信息: 不是页表本身,但您

最近我读到页表是每个进程的实体,我在想,是否可以在Linux机器上查看特定进程的页表?
我已经读到一些寄存器中有一个对页表的引用?

在x86上,有一个指向进程页表的cr3寄存器。但是,您不能在ring-0之外访问它,因此您必须依靠/proc/self/pagemap之类的东西来了解页面表

如果您只想查看流程中映射的内容,请查看/proc/self/maps。 如果您确实想了解底层物理帧,请查看/proc/self/pagemap

以下是关于pagemap文件的一些更详细的信息:

不是页表本身,但您可以查看/proc/N/maps以查看每个进程的内存映射。此外,我认为较新的内核在/proc中有另一个条目,允许您从本质上转储整个页表层次结构。我认为我以前关于类似主题的文章会很有用,阅读本文,了解页面对于Linux内存管理的确切含义(而非含义)的更多详细信息: