我刚开始学习硬件辅助虚拟化并阅读了有关 Intel VMX/VT-x 如何在高层次上工作的信息,但是有些事情我并不清楚,希望您能帮助我更好地理解。我已经找到了这个问题(英特尔虚拟化技术:如何加载来宾通用寄存器?),但这对我没有帮助。
- 英特尔手册说,虚拟控制机器结构 (VCMS) 包含管理新的非 root 模式所需的信息。VCMS 的部分之一是Guest State,它应该存储诸如%cr3和%idtr寄存器之类的内容。该手册说类似:“处理器的状态在VM进入期间从Guest State加载并在VM退出期间存储回此处”。那么这些加载和存储操作是否在虚拟机进入和虚拟机退出期间通过英特尔 VT-x 技术在硬件中自动实现?这个对吗?
- 如果上面的答案是“是”,那么来宾的普通通用寄存器的内容是如何存储在 VM exit 上并在 VM enter 上加载回的?这应该由 VMM/Hypervisor 的特定实现来完成吗?如果“是”,您能否告诉我为什么%cr3、%idtr"等的加载和存储是自动完成的,而 gpr 不是这种情况?
如果这些问题很愚蠢,我很抱歉,但我刚刚开始学习与虚拟化相关的东西。谢谢你的帮助。