我们能用c程序显示页表地址吗?
页表和扩展页表有什么区别?
最佳答案
我们能用c程序显示页表地址吗?
不使用普通的C程序,不行。用户模式程序运行在虚拟内存中,由内核提供,使用分页机制。所有这些都被抽象出来,所以用户空间对此一无所知。
Linux内核确实为用户空间提供了一种观察页面表的机制,如this question所示。
页表和扩展页表有什么区别?
“扩展页表”是英特尔的Second Level Address Translation (SLAT), also known as nested paging实现,用于更有效地虚拟化来宾虚拟机的内存。
基本上,来宾虚拟地址首先转换为来宾物理地址,然后转换为主机物理地址。这都是在硬件(由MMU)中完成的,以避免VMM需要在软件中完成额外的工作。