内存虚拟化:EPT
概述
EPT(Extended Page Tables,扩展页表)是Intel VT-x技术中一项关键的硬件辅助内存虚拟化特性。它通过硬件直接支持客户机物理地址(GPA)到宿主机物理地址(HPA) 的转换,从而解决了传统软件内存虚拟化效率低下的问题。
简单来说,EPT在CPU的内存管理单元(MMU) 中,为虚拟机内存访问增加了一层硬件地址转换,使得虚拟机内的内存访问可以完全由硬件自动完成,无需VMM(虚拟机监视器)介入。
EPT原理

为了支持EPT,VMCS的VM-Execution控制域中提供了Enable EPT字段,如果在VM-Entry的时候该位被置上,EPT功能就会被启用。
EPT页表的基址是由VMCS的VM-Execution控制域中的Extended page table pointer字段指定的,它包含了EPT页表的宿主机物理地址。
EPT页表是一个多级页表,每级页表的表项格式是相同的:
