在全虚拟化中,guest OS 的 CPL 是什么?在半虚拟化中,来宾操作系统的 CPL 为 1(环 1)在完全虚拟化中是否相同?
而且我听说有些x86特权指令不容易处理,因此需要“二进制重写”方法......
这种“二进制重写”是如何发生的?我知道在虚拟化中,CPU 不是模拟的。那么管理程序如何在 CPU 执行二进制指令代码之前更改它们?他们是否预测内存上的下一条指令并在 CPU 到达之前更新内存内容?如果这是真的,我认为管理程序代码(执行二进制重写)每次都需要在执行客户操作系统的某些指令之前拦截 CPU。我认为这是荒谬的。
具体解释将不胜感激。先感谢您..!!