Paravirtualization is a special technique developed to overcome some serious performance issues presented by full virtualization’s reliance on a Virtual Machine (VM) manager to constantly translate back and forth between virtual and physical resources. This imposes such a burden on the host computer, it effectively limits the number of VMs that can be hosted, as well as the types of apps that can be run in a VM. Paravirtualization allows the OS to communicate directly with the hypervisor to conduct activities that would be time-consuming for the VM manager using commands called hypercalls.
To support paravirtualization, OSes need to be modified to implement an API that lets them exchange hypercalls with the hypervisor. Paravirtualized hypervisors, like Xen, need OS support and special drivers, which are now built into the Linux kernel as well as other OSes. Unmodified, proprietary OSes, including Windows, have not been adapted with the API, and won’t run in a paravirtualized environment without the help of special paravirtualization device drivers that are built to allow unmodified OSes to run on a Xen hypervisor.
For example, SUSE offers a Virtual Machine Driver Pack, which contains a set of paravirtualized disk, network and balloon drivers you can install in VMs that run an unmodified OS in full virtualization mode. Installing these drivers allows the disk and network drivers of the VM to use paravirtualization, where the core OS doesn’t have to be modified. This allows you run fully-virtualized Windows workloads on SUSE Linux Enterprise Server with near-native performance.