Virtual Hair Splitting

analysis
Mar 30, 20072 mins

I received some feedback recently over my coverage of Parallels Workstation for Windows 2.2 (see the Test Center review). Specifically, I was criticized for describing Parallels as a "hypervisor-based" solution, a term echoed by the company's own marketing collateral. However, there seems to be some debate as to just what constitutes a "hypervisor" and whether or not the approach taken by Parallels truly qualifi

I received some feedback recently over my coverage of Parallels Workstation for Windows 2.2 (see the Test Center review). Specifically, I was criticized for describing Parallels as a “hypervisor-based” solution, a term echoed by the company’s own marketing collateral. However, there seems to be some debate as to just what constitutes a “hypervisor” and whether or not the approach taken by Parallels truly qualifies.

According to Wikipedia, there are two types of x86 hypervisor:

1. A Type 1 hypervisor runs as the primary control layer and occupies Ring 0 of the Intel x86 CPU privilege model. In such a scenario, host operating systems – which would normally run in Ring 0 on bare iron – are pushed-up to Ring 1 (the next lower privilege level) when running within a Virtual Machine controlled by the hypervisor (which is now essentially the new OS kernel). Examples include XEN and VMware ESX Server.

2. A Type 2 hypervisor runs atop an existing host OS and manages the interaction between guest OS and the relevant host OS services and devices. In such a scenario, the hypervisor may or may not install kernel mode components – drivers, pass-through devices/services – however, the host OS remains in overall control of the underlying hardware. This is the model used by Virtual PC, VMWare Workstation/GSX Server, etc.

From what I can glean from the limited technical documentation available, Parallels employs a classic Type 2 hypervisor with a few additional kernel mode drivers to eliminate some of the slower aspects of VM-to-host OS integration (binary translation, etc.) And since the Parallels kernel-mode code is effectively in control of the entire system when executing (as is any Windows kernel mode device driver), the net result – managing the bare iron to accelerate VM performance – remains the same.

Note: Parallels never claimed to have implemented a Type 1 hypervisor. Rather, the confusion seems to surround the definition of the term itself and the fact that any mainstream virtualization solution can claim to be “hypervisor-based” per the above definitions. So while some may object to Parallels use of the term, they’re really just splitting hairs.