首页 文章

软件虚拟化与硬件虚拟化

提问于
浏览
1

启用硬件虚拟化时实际发生了什么?如果没有,管理程序使用二进制翻译 . 但是,当启用硬件虚拟化时,我已经读过它使用陷阱和模拟 . 所以访客代码直接在主机cpu上执行,如果它是一个特权指令,cpu将控制交给虚拟机管理程序,则虚拟机管理程序模拟该指令然后执行它 .

那么,仿真在这里意味着什么?启用硬件虚拟化时执行的二进制转换是否相同?

1 回答

  • 2

    启用硬件虚拟化会在Intel中设置 vmx 标志,在AMD中设置 svm 标志 .

    在英特尔架构中,这允许用户空间调用在较低的protection ring上按原样运行,因为它们不能与主机操作系统相互干扰 . 另一方面,虚拟化操作系统的内核空间调用被虚拟机管理程序捕获并进行二进制翻译 .

    这样做是为了部分地消除对于普通呼叫的CPU密集转换 . 这种情况发生的程度取决于虚拟化类型 - 完整,部分或半虚拟化 .

    二进制翻译是更精细的仿真过程的一个子集 . 它将访客代码分配为能够在主机架构上运行 .

相关问题