KVM(Kernel-based Virtual Machine)是Linux内核中的虚拟化解决方案,它是MMU Notifier机制最重要也是最复杂的应用场景之一。本章将深入分析KVM如何使用MMU Notifier来维护客户机物理地址与宿主机物理地址之间的映射一致性。
6.1 KVM内存管理架构
6.1.1 三层地址空间
KVM虚拟化环境涉及三层地址空间的转换:
1. 客户机虚拟地址(GVA - Guest Virtual Address)
- 客户机应用程序使用的虚拟地址
- 由客户机操作系统的页表管理
- 客户机内核维护进程的虚拟地址空间
2. 客户机物理地址(GPA - Guest Physical Address)
- 客户机操作系统看到的"物理地址"
- 实际上仍然是虚拟化的地址空间
- KVM需要将GPA映射到真正的物理地址
3. 宿主机物理地址(HPA - Host Physical Address)
- 真实的物理内存地址
- 由宿主机内核管理
- 最终所有访问都必须到达这一层
地址转换流程:
GVA → (客户机页表) → GPA → (EPT/NPT) → HPA
订阅专栏 解锁全文
370





被折叠的 条评论
为什么被折叠?



