Paravirtualization
Paravirtualization is a popular virtualization technique that is used in big data centers that support cloud computing offerings. In this technique the physical underlying hardware environment of the virtual infrastructure is not simulated. But guest operating systems and guest applications within the virtual machine are executed in their own isolated VM domains as if they would run on all on seperate systems.One xample of using this technique is the Kernel-based virtual machine (KVM) softwareas part of Linuxoperating systems.
The paravirtualization follows the approach to modify guest operating system (OS) with APIs. The goal is to reduce the virtualization overhead and keep the virtual machine fast. This is an Advantage since it is important for users who typically do not want a virtualized system that is significant slower than the original physical system without using virtualization. In order to improve the performance a modifying of only the guest OS kernel is needed. This is done by replacing ‘nonvirtualizable instructions’ with hypercalls for the hypervisor or the virtual machine manager (VMM) to carry out the virtualization process. This process of replacement is often done with special compilers. The disadvantages are the major costs of maintaining a para-virtualized operating system that is too high due to Kernel changes.
More about Paravirtualization
Please have a look on the following video: