T1 和 T2 虚拟机管理程序之间有什么区别?

T1 和 T2 虚拟机管理程序之间有什么区别?

t1 和 t2 虚拟机管理程序之间有什么区别?

维基百科文章解释了这一点,但我不太明白。显然两者都需要某种主机系统才能运行。有人知道两者的区别的合理解释吗?

答案1

其他人已经很好地解释了这两种类型之间的区别。需要注意的一点是,虽然 Hyper-V 似乎是安装在 Server 2008 内部,但实际上 Hyper-V 安装在根分区上,而您正在安装的“主机”Server 2008 本身将成为虚拟机。它之所以能看到其他虚拟机,是因为 Hyper-V 管理服务连接到它正在运行的 Hyper-V。

这里是Hyper-V 体系结构Hyper-V Architecture图中需要注意根分区内有权访问虚拟机管理程序的几个项目,这些项目允许根分区报告磁盘和内存使用情况:

VID – 虚拟化基础设施驱动程序 – 为分区提供分区管理服务、虚拟处理器管理服务和内存管理服务。

VMWP – 虚拟机工作进程 – 虚拟化堆栈的用户模式组件。工作进程为父分区中的 Windows Server 2008 实例向子分区中的客户操作系统提供虚拟机管理服务。虚拟机管理服务为每个正在运行的虚拟机生成一个单独的工作进程。

WinHv – Windows 虚拟机管理程序接口库 - WinHv 本质上是分区操作系统驱动程序和虚拟机管理程序之间的桥梁,允许驱动程序使用标准 Windows 调用约定来调用虚拟机管理程序

答案2

我认为维基百科文章说得很清楚。T1 虚拟机管理程序将硬件虚拟化为全部该机器上运行的操作系统实例,而 T2 虚拟机管理程序则运行里面在非虚拟化硬件上运行的操作系统,并提供虚拟访问所有其他的操作系统实例。

也就是说,T1 比任何操作系统实例都更基础,但 T2 依赖于其中一个。


如果 Hyper-V(t1 虚拟机管理程序)确实在所有操作系统下运行,那么机器上运行的每个操作系统是否应该只看到分配给它的内存,而看不到包含虚拟机的进程?

我想象(但没有知道——此时我正式超出了我的深度)这取决于虚拟化支持硬件的工作方式。

答案3

如果我理解正确的话,T1 不是安装在现有的操作系​​统上(认为它本身就是一个操作系统,其唯一目的是托管虚拟机),T2 安装在你的主操作系统内(假设你运行 linux,在里面运行 vmware 工作站,在里面运行 windows)

答案4

实际上非常简单,T1 在 OS 驱动程序层(或者说内核,如果你想这样称呼它)运行,而 T2 在 OS 应用程序层运行。因此,为了访问物理硬件,T1 必须调用设备驱动程序,而 T2 必须调用 OS 系统,该系统会将调用定向到驱动程序,就像任何其他用户级软件一样。一旦你以这种方式看待它,t1 的优势就变得显而易见,你可以很容易地看到“裸机”只是一个术语,表示“接近硬件的驱动程序”。

构建 t1 有不同的方法 - 常见的(方法上相当过时的)方法是 Xen 和 Hyper-V,构建一组单独的驱动程序(单独的微内核)与虚拟机管理程序交互,但它还必须为其主流内核保留一个正常的操作系统,以便利用额外的硬件,并且两者之间的交互相当昂贵,而 KVM 不使用单独的内核,而是驻留在 Linux 内核中,因此它就可以与所有设备驱动程序一起直接访问所有内容。

相关内容