我熟悉动态转换和陷阱与仿真(Type1 Hypervisor)概念。让我困惑的是,很多文章通常将动态翻译和类型1虚拟机管理程序结合起来,如下图。
https://img.brainkart.com/imagebk12/gSd5NSZ.jpg
在我看来,当使用动态翻译(例如qemu)时,我们通常会模拟一组假CPU寄存器并根据客户指令更新它们,这意味着模拟代码通常具有与虚拟机管理程序相同的特权模式。但对于类型 1 管理程序,它们应该处于不同的特权模式。
因此,我想知道在Intel-VT/AMD-SVM(硬件辅助虚拟化)出现之前,传统x86是否支持类型1虚拟机管理程序?如果是,它如何模拟未能跨不同权限引发陷阱的敏感指令?