所以我研究了英特尔虚拟化扩展中的 EPT。我知道,对于影子页表,VMM 必须对硬件可访问的影子 PT 进行写保护,这样每当来宾尝试写入 PT 时,它就会陷入 VMM。这种基于软件的页表管理是一个巨大的开销,应该通过 EPT/嵌套分页来解决。
但是嵌套分页是如何解决这个问题的呢?在这种情况下,我们有 2 个单独的翻译:Guest VA 到 Guest PA(即主机 VA),以及 Host VA 到主机(机器)PA。据称,访客管理的页表的访客更新不需要陷阱。这是不连贯的:如果来宾更改了 GVA->GPA 映射,那么新的 GPA 映射不应该也反映在 HVA 中吗?换句话说,guest 管理的页表中的每个更改不应该也反映在 VMM 管理的页表中吗?我们似乎有同样的问题。EPT的引入解决了什么问题?
谢谢。