The idea behind virtualization is to abstract underlying hardware resources from the software that uses those resources....
A hypervisor is a software tool installed on the host system to provide this layer of abstraction. Once a hypervisor is installed, OSes and applications interact with the virtualized resources abstracted by the hypervisor -- not the physical resources of the actual host computer. There are different types of virtualization based on the level of isolation provided. Let's take a closer look at full virtualization vs. paravirtualization.
What is full virtualization?
Virtualization is often approached as full virtualization. That is, the hypervisor provides complete abstraction, and the guest OSes don't know -- or care -- about the presence of a hypervisor. The OS doesn't talk to the hypervisor. Each VM and its guest OS works just as if it was running alone on independent computers, and no special modifications or adaptations are needed in the OSes.
But early hypervisors had a performance problem. Hypervisors rely on hardware emulation, such as a VM manager to translate back and forth between physical and virtual resources, like CPUs and memory spaces. This constant translation imposes a performance penalty on the host computer. In the early days of full virtualization, this performance penalty limited the practical number of VMs that a system could host and also frequently limited the types of applications that could run in a VM successfully.
What is paravirtualization?
Para means alongside or partial, and paravirtualization gained attention as one potential answer to this performance issue. Paravirtualization seeks to bolster virtualization performance by allowing an OS to actually recognize the presence of a hypervisor and communicate directly with that hypervisor to share activity that would otherwise be complex and time-consuming for the hypervisor's VM manager to handle. Commands sent from the OS to the hypervisor are dubbed hypercalls.
In order for paravirtualization to work, the guest VM OSes must be modified or adapted to implement an API capable of exchanging hypercalls with the paravirtualization hypervisor. Typically, a paravirtualized hypervisor, like Xen, requires OS support and drivers that are now built into the Linux kernel and other OSes. Nonmodified, proprietary OSes, such as Microsoft Windows, won't run in a paravirtualized environment -- though paravirtualization-aware device drivers might be available to allow a nonmodified OS, such as Windows, to run on a Xen hypervisor. Although the OS must be modified to communicate with the hypervisor, the applications themselves don't need any modifications.
Dive deeper into paravirtualization technology
Functions and features of paravirtualization span four different areas.
What are the pros and cons of paravirtualization, and how do they affect different use cases?
What OSes support paravirtualization technology, and how does that support vary between different versions?
Still, paravirtualization carries some criticisms. Part of the problem is the need to modify the OS, which is unappealing to major vendors, like Microsoft, effectively limiting the number of OS options available for an enterprise. Second, the direct communication creates a tight dependency between the OS and hypervisor, potentially resulting in version compatibility problems -- where a hypervisor or OS update or upgrade might break the virtualization. Finally, the intentional communication among OSes and the hypervisor could pose possible security vulnerabilities.
Full virtualization vs. paravirtualization
The real game-changer for full virtualization was the creation of hardware virtualization extensions for modern processors, such as the Intel Virtualization Technology and Advanced Micro Devices virtualization processor command set extensions. Hardware extensions help the hypervisor tackle complex tasks at the processor level rather than through software emulation -- vastly accelerating the hypervisor and mitigating almost the entire performance penalty in full virtualization. Combined with the benefits of full virtualization isolation and the ability to use any OS without modification, paravirtualization never seemed to gain much traction in enterprise data centers. This left full virtualization to become the de facto standard for much of the industry, vs. paravirtualization, which is generally relegated to experimental and niche use cases.
Dig Deeper on Introduction to virtualization and how-tos
Related Q&A from Stephen J. Bigelow
WET code leaves apps bogged down. Learn how to reduce the challenges brought on by code redundancy by programming based on the DRY principle. Continue Reading
A virtualization layer in an embedded system provides better efficiency for tasks such as network virtualization. Some examples of embedded ... Continue Reading
An embedded hypervisor offers several benefits, such as VM security, system reliability and improved hardware use, and is ideal for admins looking to... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.