如何通过VMX实现虚拟机挂起与恢复?Linux玩具型Hypervisor实践
基于VMX的玩具Hypervisor:虚拟机挂起功能实现进展
我在Linux环境下折腾出了一个基于VMX的玩具级虚拟机监控器(hypervisor),现在已经能和测试虚拟机正常配合跑起来了。最近正忙着给它加虚拟机挂起与恢复的功能,先把目前跑通的挂起操作流程整理出来:
- 测试虚拟机先以实模式(real-mode)启动,完成基础初始化后切换到保护模式(protected mode)
- 虚拟机主动调用
wrmsr指令触发VMEXIT,把控制权交还给hypervisor - 监控器捕获到VMEXIT后,会把CPU的完整上下文(通用寄存器gprs、段寄存器segment regs、各类描述符表descriptor tables等),还有虚拟机的所有内存数据都保存到磁盘文件里,之后监控器退出运行(不过目前VMXON/VMCS区域还没做清理操作)
内容的提问来源于stack exchange,提问作者wangt13
相关产品推荐
相关产品推荐

