What is the difference between t1 and t2 hypervisors?

The Wikipedia article explains it, but I am not quite getting it. Apparently both require some sort of host system to run in. Does anybody know of a good explanation of the differences?


Others have explained the differences between the 2 types pretty well. One thing to note is that while it seems like Hyper-V is being installed inside Server 2008, what is actually happening is Hyper-V is being installed at the root partition, and the "host" Server 2008 you're installing on becomes a virtual machine itself. The reason it can see the other VMs is because of the Hyper-V management service, which connects to Hyper-V which it is running on.

Here is the Hyper-V architecture. A few items to note in the diagram within the root partition that have access to the hypervisor allowing the root partition to report disk and memory usage:

VID – Virtualization Infrastructure Driver – Provides partition management services, virtual processor management services, and memory management services for partitions.

VMWP – Virtual Machine Worker Process – A user mode component of the virtualization stack. The worker process provides virtual machine management services from the Windows Server 2008 instance in the parent partition to the guest operating systems in the child partitions. The Virtual Machine Management Service spawns a separate worker process for each running virtual machine.

WinHv – Windows Hypervisor Interface Library - WinHv is essentially a bridge between a partitioned operating system’s drivers and the hypervisor which allows drivers to call the hypervisor using standard Windows calling conventions

  • I understand. But how is that different in practical terms? The root system is required for the hypervisor to work, cannot be rebooted independently, and can see the other VMs as processes. It can also see the entire memory installed in the machine. That pretty much are the symptoms of a host system of a t2 hypervisor. I assume the root system doesn't have direct hardware access since it is now a virtual machine itself? – Andrew J. Brehm May 25 '09 at 16:15
  • That's correct. It doesn't have direct hardware access. Not only is Hyper-V available as a role in Server 2008, but it's also available as a standalone installation with no "host" OS. microsoft.com/hyper-v-server/en/us/default.aspx – a_hardin May 25 '09 at 16:40
  • The stand-alone version really uses a stripped-down version of Windows for its root partition. Anyway, I understand the difference between t1 and t2 hypervisors is that a t2 hypervisor runs on top of a host OS which makes the host OS a "real" machine whereas a t1 hv runs under the root and child partitions and all of the partitions are VMs and none have hardware access. – Andrew J. Brehm May 25 '09 at 18:52
  • One last (I hope) thing: If a t1 hypervisor runs beneath both the child partitions and the root partition, why does the root system see how much memory the other partitions use? – Andrew J. Brehm May 27 '09 at 12:03
  • Check out the link I added to the architecture diagram. That may help you understand a little more how the root partition can see what's going in the hypervisor. – a_hardin May 27 '09 at 12:28

I think the wikipedia article is pretty clear. A T1 hypervisor virtualizes the hardware for all the OS instances that run on that machine, while a T2 hypervisor runs inside a OS running on unvirtualized hardware, and provides virtual access for all the other OS instances.

That is T1 is more fundamental that any OS instance, but T2 depends on one of them.

If Hyper-V (which is a t1 hypervisor) really runs below all operating systems, shouldn't every single OS running on the machine see only the memory assigned to it and not processes containing VMs?

I image (but don't know--at this point I am officially out of my depth) this depends on how the virtualization support hardware works.

  • That's the easy part. What does that mean? I just ran an XP guest in Virtual PC on a Vista host and, for comparison, a Vista child on a Hyper-V with a Windows 2008 root partition. In both cases the VMs were represented as processes running on the host/root system and the memory used by the VMs was taken by the process from the host system (for Virtual PC) and the root partition (for Hyper-V). If Hyper-V (which is a t1 hypervisor) really runs below all operating systems, shouldn't every single OS running on the machine see only the memory assigned to it and not processes containing VMs? – Andrew J. Brehm May 25 '09 at 15:31
  • Now we are getting somewhere. Your last edit made my question a bit clearer, I think. Perhaps somebody will come by who knows. :) – Andrew J. Brehm May 25 '09 at 16:01

If I get it right, T1 is not installed on an existing operating system (think it is an OS in its own right, with the sole purpose of hosting virtual machines), T2 is installed inside your main os (say you run linux, inside that you run vmware workstation, inside that you run windows)

  • Yes, that's what I got. But a T1 still uses a "root partition" for its stack (i.e. to load disk images from and to run drivers) and VMs are still represented as processes inside the root partition. T2 hypervisors have a "host system" and "guests" rather than a "root partition" and "child partitions". But what is the noticeable difference other than the names? – Andrew J. Brehm May 25 '09 at 15:29
  • See the response of a_hardin, it covers this... – Vincent De Baere May 26 '09 at 7:20

Quite simple actually, T1 runs at the OS drivers layer (or kernel, if you want to call it that) and T2 runs at the OS application layer. So in order to reach physical hardware T1 has to make a call to the device driver, while T2 has to make a call to an OS system that will direct the call to the driver, like any other user level software. Once you look at it this way, the advantages of t1 become obvious, and you can easily see that "baremetal" is just a term for "close to the hardware's drivers".

There are different approaches to building t1 - the common (and the rather outdated, approach-wise) ones are Xen and Hyper-V, building a separate set of drivers (a separate microkernel) which interacts with the hypervisor, but it also has to keep a normal OS for it's mainstream kernel, in order to utilise additional hardware, and interaction between the two is rather expensive, and KVM, which doesn't use a separate kernel, residing right in the Linux kernel instead, so it's right there in with all the device drivers with direct access to everything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.