What Is A Hypervisor Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Originally, a hypervisor was called a Virtual Machine Monitor. The term VMM has fallen out of favor and has been now replaced with the term hypervisor. It is a layer of software that resides below the virtual machine and above the hardware (see figure 1). Without the existence of the hypervisor, the operating system communicates directly with the hardware.

Virtual machine



Figure : Place of the Hypervisor

The hypervisor is one between several hardware virtualization techniques, it allows hosting multiple operating systems, which we call guests, on a host computer. It is implemented in the kernel level and has the highest level of control on the hardware. It permits an abstraction on the physical part on which it is installed: each Operating System knows only the Virtual Machine on which he is installed, but not the material used and any other OS. An OS installed on a virtual machine doesn't know he's running on a VM, except in a case of paravirtualization technology which requires the use of a version of a specific modified OS to have a better run.

To be able to make works different OS on the same computer, the hypervisor manage the request between the different virtual machine. Basically, he is for the OS what the OS is for an application in a multitasking environment. For each OS, the hypervisor knows if he should give a similar or a different Quality of Service (QoS), and he has also to manage it because sometimes one OS has priority on another one.

A virtualization environment must have a perfect reliability, it should never crash.

How the hypervisor does works in the system?

In fact, there are two kind of software hypervisors, the type 1 and the type 2.

We can also find a hardware hypervisor, which has been set up by AMD and Intel recently.

The native hypervisor (type 1)

Called also hardware hypervisor or bare metal hypervisor, it is a software which is executed on a material platform, which is considered as a tool for control of an operating system. A secondary operating system can therefore be carried over the material. The type 1 hypervisor is a lightweight and much optimized program. Originally, it was a kind of paravirtualization and so the hosted OS was modified for and was knowing that it was running on a hypervisor. Nowadays, on processors with hardware virtualization instructions (AMD-V and Intel-VT for example), the guest OS does not need to be modified to run on a type 1 hypervisor. The advantage of a type 1 hypervisor is to run multiple operating systems on the same computer without the overhead of a host OS. They are also more secured and portable, the can move from hardware to hardware in case of crash (use in servers). This is anyway the currently most efficient method of virtualization infrastructure but it has the disadvantage of being cumbersome and costly, while allowing more flexibility in the case of virtualizing a data processing center. Some examples of this hypervisor are well known such as Xen, VMware ESX, Microsoft Hyper-V Server, KVM, Oracle VM…

Type 1 hypervisor





Type 1 hypervisor

Figure : The native hypervisor

The hosted hypervisor (type 2)

Called also software hypervisor, this kind of hypervisor is a software which is executed inside of another Operating System. A guest OS will run in 3 layer over the hardware. As the guest OS does not know it is virtualized, it has not need to be modified or adapted, and it is much simpler. On the contrary of the type 1 hypervisor which is very light, this one cost a lot in memory and to run on the host OS. Here, the software virtualize the hardware of the guest OS, and these think they really are in connection with the hardware whereas they communicate with the host OS which communicate for the guest OS with the hardware. Let's take an example. Consider a computer that has a 1TB hard drive and 8GB of RAM. You can allocate 1GB of RAM and 200GB of hard drive to a guest OS, and he will think there is only 1GB of RAM and 200GB of hard drive on the computer whereas there is much more, but he can't access to it.

This solution is very similar to an emulator, and is sometimes confused. However, the microprocessor, the working memory(RAM) and storage memory are directly accessible through a type 2 hypervisor while on an emulator the CPU is simulated, and so performance are considerably reduced, compare to virtualization.

This solution insulates the guest OS, but it has a cost in performance. This cost can be very high if the processor needs to be emulated, as it is in the case of emulation. In exchange, this solution allows us to run more heterogeneous OS on the same computer with a complete isolation.

Exchanges between machines is via the standard channels of communication between OS (TCP/IP, UDP, and other network protocols), a buffer of exchange can emulate virtual network card on a single network real network card. The main disadvantage of the type 2 hypervisor is that if the guest OS crashes, all of the hosted OS will crash, and there is no possibility to separe them. On the other side, they are really useful when you need to test one or multiple OS within Windows, OSX or even Linux. Several software use the type 2 of hypervisor, such as Microsoft VirtualPC, Oracle VirtualBox, VMware, Parallels Desktop…

Hosted OS

Guest OS


Type 2 hypervisor

Figure : Type 2 Hypervisor

Hosted OS

The hardware hypervisor

The hardware hypervisor is based on what we call Hardware assisted virtualization. This is a common name for two independent but very similar technologies, developed by Intel and AMD, which support the virtualization directly on the microprocessor. AMD calls it AMD-V and Intel calls it Intel VT. The principle of this virtualization is based on the binary translation. It runs some guest code directly on the hardware with none assistance from the host system (the hardware needs to be designed to support this technology).

History and evolution of hypervisors

The first hypervisors were born on Mainframes S/360 from IBM in the end of the 60s, and are still used in a large scale, called z/VM. In the early 70s, IBM released their first commercial version of a full OS environment virtualization on their IBM System/370 and they called it the VM/370. It was an implementation of a full virtualization, or a complete virtualization. The problem is that in this period, virtualization is new and people do not really see the utility of it.

In the end of the 80s and the beginning of the 90s, there was a beginning of usage of virtualization. Indeed, the Amiga could run PC x386, Macintosh 68xxx or even X11 in multitasking.

In the end of the 90s, seeing that there is an underutilization of the hardware in computers, the VMware Company launched the software virtualization of the x86 architecture. AMD and Intel also used some hardware virtualization in their x86 processors in the second half of 2000.

Difference between a software and a hardware hypervisor

In the hardware virtualization, many studies showed that we have some better performance than in software virtualization.

As the hardware hypervisor is a new technology, it is very expensive and architectures like Intel-VT or AMD-V cost a lot of money whereas most of the software hypervisors or free and even sometimes open source.

Even if there are expensive, in the hardware hypervisor there is a much better protection and security, because one Operating system does not depend at all on the other one. Each one is really isolated from the other.

As the hardware hypervisor has a lot of operations to do, on the contrary, the software hypervisor is much more light and though has a better management of the cooling and the power used, we can take the example of Android which uses a linux kernel for interaction with his hardware and background services, then he uses a VM called Dalvik to run the software that the user interacts with. Despite he is not allowing a user to run more than one OS at once, Android is very similar to a type 1 hypervisor. The underlying Linux host is really transparent to the end user, unless he takes the root control and want to interact with the Linux part of the phone.

The current Intel/AMD Support for Hypervisors

A look at the market share of hypervisors