【发布时间】:2020-10-26 13:37:51
【问题描述】:
为什么我们不能直接获取 GPA,然后直接计算真实的物理地址,如第 8 页的https://www.exploit-db.com/docs/45546 所示?我们可以节省大量的内存访问。
为什么我们需要嵌套页表的复杂计算,如第 9 页的同一链接所示?
我不确定,但我的猜测是允许更多的寻址空间。如果虚拟机“拥有”4gb 虚拟空间和 4gb 物理空间,那么如果我们使用第一种方法,我们只能在真机中获得 4GB。但我认为我们可以克服它。
【问题讨论】:
-
首先如何获得客人的实际地址?一般内存访问(可能是隐式的)没有VM退出,如果它会那么我会比使用硬件遍历页表慢。我们需要更多的层次来使表稀疏并避免消耗大量内存。一般来说,在 x86 上,在任何模式下,内存访问的“中断”都不是微不足道的。
-
@MargaretBloom,我使用操作系统的正常页面遍历获取访客物理地址,这种方法有什么问题?
-
1.使用OS正常页面遍历获取GPA 2.使用相同页面遍历计算PPA(虚拟地址为GPA)
-
GPA 到 PA 的映射由管理程序处理,而不是由来宾操作系统处理
标签: virtual-machine x86-64 virtualization page-tables ept