【问题标题】:Extended page table(ept)扩展页表(ept)
【发布时间】: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


【解决方案1】:

我明白了! 每个表都位于 GPA 中,因此,我们需要使用带有 eptp 的 table walk 来转换它以获取 table 的 PPA!我们需要为每个表执行此操作,这就是 long page walk 的原因。 比如PML4在GPA里面,所以我们需要翻译,等等。

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 2015-05-17
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多