Hypervisors - the How and Why

We'll start at what is easily the most publicized - and at the same time least commonly understood - technology of them all: hypervisor-based virtualization. Technologies that fall into this category can be divided into two basic types: "bare metal" hypervisors (which are situated between the hardware and the OS layer) and the "software" hypervisors that act as a standalone application.



Our Hardware Virtualization article discusses the bare metal hypervisors in-depth, but essentially both kinds perform the same basic functions. A bare metal hypervisor passes instructions on to the actual hardware, while a software hypervisor passes them on to the host OS. It should be obvious which of the two provides us with the least overhead for the guest OS, but both technologies have very distinct uses.

Bare metal hypervisors are at this point the ultimate solution for running multiple virtual machines while retaining the highest level of isolation and flexibility possible. They minimize overhead by cutting out the middleman (a bulky pre-installed OS) and act as a kind of miniature OS themselves, right on top of the hardware. There are currently three main techniques applied in hypervisor technology.

One is based on Binary Translation, a technique used by VMware to fully translate every single call a virtual machine (VM) makes into one that is safe and non-intrusive on other VM's using the hardware. This requires the hypervisor to do the bulk of the work, but allows any OS to run next to any other OS in an unaltered state.

A second solution for virtualization comes straight out of Intel's and AMD's research labs, and is something we refer to as Hardware Virtualization. While Binary Translation (BT) is able to run quite well on a "conventional" hardware system, as virtualization spread throughout the IT landscape it was felt necessary to adapt hardware systems to better accommodate this rather drastic change in system layout. Both Intel and AMD have made changes to their products (Intel VT-x and AMD-V might ring a bell) to allow for a system that is able to run multiple VMs more naturally. It is not possible to use both hardware virtualization and BT at the same time, but there is another technology that allows improvements for both.

This technology is known as paravirtualization, and it relies on an OS that is altered to be "aware" of its virtualized state. These slightly changed VMs reduce the amount of work a hypervisor needs to do, by simply firing off only "safe" calls, so no translation is necessary. The fact that this form of virtualization requires actual changes to be made to the source code of an OS used to greatly limit its use, but since Microsoft has picked it up (and made it possible to use with Windows Server 2008), it has been getting a lot more attention. The technology can be used in conjunction with either BT or HW virtualization, but is also able to stand on its own, without the use of either.

Again, more in-depth explanations of each of the above technologies can be found in our Hardware Virtualization article.

Examples of popular bare metal hypervisors are VMware's ESX, Microsoft's Hyper-V and various Xen-based products implemented by several companies (among others, Novell and Citrix). Software like VirtualBox, Microsoft VirtualPC and VMware Server and Workstation can be classified as software hypervisors.

Slightly Differing Answers to Slightly Differing Questions When Are Hypervisors a Good Solution?
Comments Locked

14 Comments

View All Comments

  • FATCamaro - Tuesday, October 28, 2008 - link

    I wasn't clear on how the different hypervisor products compared (ESX, Xen, MS?) with respect to binary translation or paravirtualization without looking at your other article. A summary here would have been nice.
  • MontagGG - Tuesday, October 28, 2008 - link

    You should be able to run a virtual Win98 in Vista to play classic games. This does require the premium editions.
  • murphyslabrat - Tuesday, October 28, 2008 - link

    You seemed to have addressed the issue in the end, but my question is: as far as PC Gaming goes, is there any reason to use a virtual machine. If the answer is yes, then which approach is typically best, and what would be the recommendation for software.
  • Denithor - Tuesday, October 28, 2008 - link

    Read page 11 of the article.

    Yes, in certain cases. If you're running OS X or Linux you can run a virtual copy of XP which can then run a game not supported by your "true" operating system. However, it's going to add overhead, therefore reducing performance (game speaks to the virtual XP which has to speak to the real OS which talks to the hardware). Newer games probably won't work very well because they need as much hardware as they can get so the extra baggage will just weigh them down.

Log in

Don't have an account? Sign up now