我正在做 Windows 系统编程,想知道我是否可以在源代码级别访问进程的页表。
这是我对与虚拟内存相关的页表的了解。
假设用户只是在 Windows 操作系统(32 位)上运行一个名为“A”进程的进程。
首先,操作系统为A进程创建并维护4GB的虚拟地址空间。
(其中 2GB 是内核地址空间,另外 2GB 是用户地址空间。
用户地址空间中的任何代码都不能直接访问内核地址空间。)
然后,操作系统在物理内存中为A进程创建并维护一个页表,将虚拟内存地址映射到物理内存地址。
这是我的问题。
OS为A进程创建页表后,该页表是否映射到A的内核地址空间,以便用户可以从源代码间接访问页表?
或者页表没有映射到 A 的任何虚拟地址空间,而只是驻留在物理内存中,因此用户无法访问页表?