【发布时间】:2018-10-17 09:12:17
【问题描述】:
管理程序将运行在同一台物理机器上的不同操作系统相互隔离。在此定义中,也存在非易失性存储器(如硬盘驱动器或闪存)分离。
在考虑 Type-2 管理程序时,很容易理解它们如何分离非易失性内存,因为它们只是使用底层操作系统的文件系统实现来为每个 VM 分配不同的“硬盘驱动器文件”。
但是,当我开始考虑 Type-1 虚拟机管理程序时,问题变得更加困难。他们可以使用 IOMMU 隔离不同的硬件接口,但在系统中只有一个非易失性存储器接口的情况下,我看不出它有什么帮助。
因此实现它的一种方法是将一台设备分成 2 个“分区”,并让管理程序解释来自 VM 的调用并确定调用是否合法。我不热衷于非易失性接口的通信协议,但管理程序必须熟悉这些协议才能做出判断,这听起来(可能)有点矫枉过正。
还有其他方法可以实现这种隔离吗?
【问题讨论】:
-
Type 1 和 Type 2 管理程序之间的原始区别对于今天的计算机来说没有多大意义。如果您打算使用这些名称,则应说明它们的含义。此外,这不是主题;尝试在Super User 上提问。
-
我去那里,谢谢。我将类型 2 称为在某些操作系统之上运行,因此将 VM 内核请求转换为底层操作系统内核,因此可以轻松地路由此类请求。在我的理解中,针对让 VM 可以直接访问硬件接口的类型 1,使得挂钩非易失性内存调用非常难以挂钩(因此难以保护)。
标签: qemu kvm xen hypervisor