- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在Intel VMX操作中,首先需要调用VMXON(VMXON_REGION)
来开启CPU中的VMX,然后是VMPTRLD(VMCS_REGION)
等
我的问题来了。
如果两个托管管理程序同时在一台 X86 主机上运行会怎样?第一个 VMXON 运行良好,但第二个 VMXON 将失败。
并且 2 个 hypervisor 可能会调用 VMPTRLD(VMCS_REGION_a)
和 VMPTRLD(VMCS_REGION_b)
,CPU 中的当前 VMCS 已更改,它会导致另一个 hypervisor 崩溃还是它们可以共同 -彼此存在?
根据我对 SDM 的阅读,我认为它们不能共存,也许我又错过了一些重要的事情。
请帮助澄清这一点。
最佳答案
你是对的,英特尔 VT-x 的当前状态不允许并排并发运行两个独立的虚拟机监视器 (VMM)。它们会造成系统资源冲突,从而导致未定义的行为,包括虚拟机 (VM) 崩溃、挂起或重新启动,可能还有数据损坏。
例如,同时为不同的可视化解决方案加载内核驱动程序是不安全的,甚至不启动 VM。例如,我遇到过问题KVM 和 Virtualbox 或 KVM 和 Simics VMP 一起加载。
一个 VMM 不可能安全地阻止另一个 VMM 的加载或操作。一个 VMM 可靠地检测其他 VMM 的存在甚至是有问题的,因为 VMXON/VMXOFF 可以在操作系统 (OS) 操作期间动态完成,并且没有硬件资源可以充当互斥对象或虚拟化锁资源。
唯一适用于现代硬件的方法是让主机操作系统提供一个 API 来调解对底层虚拟化资源的请求(VMXON/VMXOFF、VMMPTRLD、VMLAUNCH/VMRESUME 等),并让所有 VMM 同意使用这个应用程序接口(interface)。此类功能适用于 Apple Mac OS X,最近也适用于 Microsoft Windows 系统。但是,有人可能会争辩说这些 API 在某种程度上限制了 VMM 作者。
关于linux - 如果在一台 x86 主机上运行 2 个 type-2 VMX hypervisor 会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265861/
如何在 macOS 上使用 Hypervisor.framework 在 16 位实模式下模拟 CPU?具体来说,我需要做什么才能使 CPU 处于实模式而不是保护模式?我认为简单地取消设置 CR0 的
我正在考虑使用虚拟机来托管多个操作系统,我正在寻找免费的解决方案,其中有很多。我对管理程序是什么以及为什么它们与“标准”虚拟机不同或更好感到困惑。当我指的是标准时,我将使用基准虚拟机 VMWare S
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我一直使用GDB 进行内核调试。通常我会在 VM 中运行目标内核并从主机运行 GDB。目前我正在做一个需要使用 XEN hypervisor 的项目,我觉得需要从 DOM 调试 DOM-U -0。经过
我们计划在物理机上设置 RHEL KVM 虚拟机管理程序,然后在该虚拟机管理程序上创建多个 Linux VM。 为了将存储LUN直接映射/呈现到这些VM,我们计划使用KVM的NPIV技术。 我想澄清一
我有一台运行异常的服务器;内存使用量不断攀升,一些报告只是自发地停止工作,一些数据库作业有时会失败。我有另一台运行相同配置的备份服务器(运行具有相同补丁程序的 Windows Server 2016
我是 Docker Desktop for Windows 的新手。当我按照 this 尝试 hello world 示例时出现错误。 更新 以下是我遵循的步骤: 1 Installed Docker
我无法为 AMD 处理器安装 Android Emulator Hypervisor 驱动程序。 需要注意的是,启用了虚拟化。 Emulator Process for AVD was killed在
我最近遇到了一个问题,我想使用 Gummiboot 从 Uefi 启动 Xen Hypervisor。 主要是出于优雅的原因,我不想退回到 Bios 或使用另一个(更笨重的)引导管理器。我没有找到分步
在Intel VMX操作中,首先需要调用VMXON(VMXON_REGION)来开启CPU中的VMX,然后是VMPTRLD(VMCS_REGION)等 我的问题来了。 如果两个托管管理程序同时在一台
我是一名优秀的程序员,十分优秀!