知识卡片

VM-Exit用硬件模式切换替代软件模拟

专业/工作 · 1113.a

内容

传统靠”陷入再模拟”做指令级虚拟化,会在IA架构上碰到一批敏感指令无法被正确捕获,形成虚拟化漏洞。VT-x的解法是给CPU加两种运行模式:宿主机跑在根模式,行为和传统IA完全一样;客户机跑在非根模式,敏感指令的行为被重新定义,一部分能直接执行不经过虚拟化,另一部分触发VM-Exit自动切回根模式交给宿主机处理。这个设计的关键是,虚拟化”该不该拦截”的判断被下沉到硬件层面精确控制,不再依赖软件去猜哪些指令敏感、逐条拦截模拟。

参考来源

《深入浅出DPDK》第10章《X86平台上的I/O虚拟化》