What is Paravirtualization ?

The term Paravirtualization may be new to you, but the fact is that it has been around for a fairly long time. Paravirtualization has existed since 1972 in IBM's old VM operating system where it is called DIAGNOSE code", and it is also present as a distinct feature in the Parallels Workstation operating system under the name "hypercall". In truth, while there are several different terms by which it has been known over the years, paravirtualization refers to the simple virtualization technique that can be used to basically improve the performance in a guest operating system by giving sort of a direct link between the virtual machine and the underlying physical hardware.

Before a guest operating system is installed inside a virtual machine, it is recompiled in order to achieve the enhancement of the virtualization technology through paravirtualization. With paravirtualization, any and all software that is running on a virtual system will be able to work directly on the underlying physical system hardware. That is, the software itself on the virtual machine's guest operating system will be able to make calls on the hardware directly instead of relying on just the virtual machine to make the necessary calls for it. Because of this, performance is increased without the need to sacrifice any computing power.

Paravirtualization falls under the three main types of hardware virtualization. As you may already know, hardware virtualization, also commonly referred to as platform virtualization, is the creation of a virtual machine that performs as if it were an actual computer that has some kind of an operating system installed on it. Hardware virtualization allows software to be installed and run on virtual machines that are separated from underlying physical hardware resources. A computer that is running a version of the Microsoft Windows operating system might have a virtual machine on it that is running a version of the Gentoo Linux operating system. That is one basic example of hardware virtualization at work.

The three types of virtualization in hardware and these are full virtualization, partial virtualization, and paravirtualization.


In full virtualization, there is almost a complete model of the underlying physical system resources that allows any and all installed software to run without modification.

Partial virtualiation

In partial virtualization, not everything in the target environment becomes simulated. Not all software programs installed on the guest operating system can run unmodified.


Finally, there's paravirtualization, which as explained above, is essentially a way to improve performance by having a software interface working between the virtual machine and the underlying physical hardware system itself.

Intel (Intel VT - IVT ) and AMD (AMD-V) have both released hardware virtualization technology to facilitate the running of hardware virtualization on computers. This technology has been designed to boost the power of the hypervisor. Although these two pieces of hardware virtualization technology are separate and independent, they perform broadly the same function. As increasing numbers of modern computers are sold with incorporated hardware virtualization technology, more powerful CPUs will continually be developed to allow for better creations of simulated environments.


> Xen Paravirtualization Xen Paravirtualization

Click to see Screenshots

Pictures source : fedoraproject.com

In a virtual machine, there is something called the hypervisor, which is basically the visual interface installed on a real machine that takes care of operations on the virtual counterparts. Now in most cases, the hypervisor will not be accessible to the instances in a virtual machine. Instead, it can only be accessed by those who actually have access to the real machine itself. And even if it is possible to gain access to the hypervisor on a virtual system, there will often be severe limitations to what can be done with it.

In order to avoid going through the virtual operating system for access to hardware whenever it is needed, one can rely on paravirtualization. What paravirtualization does is allow users on a virtual system to avoid going through the virtual fluff and call on the underlying physical hardware resources directly. This helps save so much time and computing resources.

How exactly does paravirtualization improve overall performance ?

Paravirtualization can minimize system overhead and really optimize overall performance due to the fact that it can support the use of virtual machines that would otherwise be underutilized in the two other forms of hardware virtualization mentioned earlier.

Though it has many advantages, paravirtualization isn't without limitations. For instance, paravirtualization requires the guest OS to be customized for the virtual machine monitor which it will run on top of. That is, in order to take advantage of paravirtualization, you first have to make certain preparations on the virtual system as well as on the physical system itself. You usually won’t find it included in standard installations. However, some software companies do provide add-ons that give the necessary abilities for all of this to become a reality.

to top