虚拟化技术实现 — KVM 的内存虚拟化
目录 文章目录 目录 前文列表 内存虚拟化 常规软件内存虚拟化 影子页表技术 EPT 技术 参考文章 前文列表 《 虚拟化技术实现 — 虚拟化技术发展编年史 》 《 虚拟化技术实现 — QEMU-KVM 》 《 虚拟化技术实现 — KVM 的 CPU 虚拟化 》 内存虚拟化 虚拟化分为软件虚拟化和硬件虚拟化,而且遵循 intercept 和 virtualize 的规律。 内存虚拟化也分为基于软件的内存虚拟化和硬件辅助的内存虚拟化,其中,常用的基于软件的内存虚拟化技术为「影子页表」技术,硬件辅助内存虚拟化技术为 Intel 的 EPT(Extend Page Table,扩展页表)技术。 常规软件内存虚拟化 虚拟机本质上是 Host 机上的一个进程,按理说应该可以使用 Host 机的虚拟地址空间,但由于在虚拟化模式下,虚拟机处于非 Root 模式,无法直接访问 Root 模式下的 Host 机上的内存。 这个时候就需要 VMM 的介入,VMM 需要 intercept (截获)虚拟机的内存访问指令,然后 virtualize(模拟)Host 上的内存,相当于 VMM 在虚拟机的虚拟地址空间和 Host 机的虚拟地址空间中间增加了一层,即虚拟机的物理地址空间,也可以看作是 Qemu 的虚拟地址空间(虚拟机是由 Qemu 模拟生成的)。 所以