【问题标题】:Can a normal process be executed in VMX-Root mode?在VMX-Root模式下可以执行正常进程吗?
【发布时间】:2014-08-28 10:14:40
【问题描述】:

我读到 kvm 使用了硬件辅助虚拟化。

使用 VT-x,有两种模式:VMX-Root 和 VMX-NonRoot。每个模式有四个环(0到3),对吗?

在带有 kvm 的 Linux 操作系统上,内核是否在 VMX-root 中运行?用户空间中的进程呢?它们是否在 VMX-Root 中,这意味着用户空间程序可以用作管理程序?

【问题讨论】:

    标签: linux process virtualization kvm


    【解决方案1】:

    关于第一个问题,是的,它是正确的。关于第二个问题,所有用户空间进程都运行环 3,环 0 中的来宾内核,您可以拦截来宾 vm 用户空间中的 rdtsc 指令并处理 vm_exit arch/x86/kvm/vmx.c 使用 vmx_getcpl() 来证明它。当然,用户空间程序无法成为管理程序或被用作管理程序。我不太明白你为什么问这个。

    【讨论】:

    • 我不明白您所说的“拦截 rdtsc 指令”、“处理 vm_exit ... 以使用 vmx_getcpl() 来证明它”是什么意思。也许我的问题不清楚,所以让我重新表述一下:假设我们已经用 kvm 运行了一个 VM。该 VM 在 VMX-NonRoot 中运行(无论我们运行用户空间程序还是内核空间代码)。现在让我们看看主持人。显然 kvm 模块在 VMX-Root 和主机 ring0 中运行。所有其他主机内核代码在 ring0 但在 VMX-Root 模式或 VMX-nonRoot 模式下运行?用户空间也一样:在 ring 3 中,好的,但是在哪种模式下?
    • 恐怕你对vmx-root和vmx-noroot不是很清楚。看这里link.vmx-root和vmx-nonroot是只用来描述两种状态的概念Intel VT VM和VMM,VM运行在vmx-noroot模式,使用vmx_exit进入vmx-root模式,这是VMM的级别。Guest VM(包括内核和用户空间应用程序)运行在VMX-nonroot模式和VMM在VMX-root模式下运行,是不是很清楚。希望链接对你有帮助,这是一个PPT。
    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多