T1和T2pipe理程序有什么区别?

t1和t2pipe理程序有什么区别?

维基百科的文章解释了这一点,但我不太明白。 显然,这两者都需要某种主机系统来运行。是否有人知道差异的一个很好的解释?

其他人则很好地解释了这两种types之间的差异。 有一点需要注意的是,尽pipeHyper-V似乎是在Server 2008内部安装的,但实际发生的事情是在根分区上安装了Hyper-V,而安装的“主机”Server 2008成为虚拟机本身。 可以看到其他虚拟机的原因是由于Hyper-Vpipe理服务连接到正在运行的Hyper-V。

这里是Hyper-V架构 。 在根分区的图表中有一些项目可以访问pipe理程序,允许根分区报告磁盘和内存的使用情况:

VID – 虚拟化基础架构驱动程序 – 为分区提供分区pipe理服务,虚拟处理器pipe理服务和内存pipe理服务。

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

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

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

也就是说T1比任何OS实例更基础,但是T2依赖于其中之一。


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

我的形象(但不知道 – 在这一点上,我正式脱离了我的深度)这取决于虚拟化支持硬件的工作原理。

如果正确的话,T1并不安装在现有的操作系​​统上(认为它本身就是一个操作系统,仅仅是托pipe虚拟机的目的),T2被安装在你的主操作系统内(比如你运行linux,你运行vmware工作站,在里面运行windows)

其实很简单,T1运行在操作系统驱动程序层(或者内核,如果你想调用它的话),T2运行在操作系统应用层。 因此,为了达到物理硬件T1必须打电话给设备驱动程序,而T2必须打电话给一个操作系统系统,将调用驱动程序,如任何其他用户级软件。 一旦你这样看,t1的好处就变得很明显了,你可以很容易地看到“baremetal”只是“接近硬件驱动程序”的一个术语。

有不同的方法来构buildt1 – 常见的(和过时的,方法明智的)是Xen和Hyper-V,build立一个独立的驱动程序集(一个单独的微内核)与hypervisor交互,但它也必须为其主stream内核保留一个正常的操作系统,以便利用额外的硬件,并且两者之间的交互相当昂贵,并且不使用单独的内核的KVM而是直接驻留在Linux内核中,所以它就在与所有的设备驱动程序直接访问的一切。