Paravirtualization is a method of allowing software running on a virtual system to bypass the virtual interface and run operations on the system’s actual hardware. In a standard virtual system, the only program that utilizes the system’s actual hardware is the virtual interface. The rest of the software runs totally inside the virtual environment. With paravirtualization, there are ways that the included software can access actual resources rather than virtual ones. This speeds up certain functions without sacrificing computing power.
Virtual computing environments have become much more common in the 21st century. Using basic virtual systems, a single hardware system can perform the operations of several without a loss in computing power. In addition, redundant virtual servers allow a single machine to go offline for replacement or repair without affecting the system’s users.
In most virtual systems, a real machine has a program installed that operates as the virtual interface for the rest of the operations. This interface, often called a hypervisor, is usually inaccessible to the users of the virtual system; only people with actual hardware access can get to it. When virtual users do have access to the hypervisor, they are often severely limited in what they can do to the system.
The hypervisor is essentially the center of the virtual system. It oversees the installed virtual software and provides a platform for virtual users. When programs on the virtual system need access to hardware, the hypervisor will take the information and process it itself or format it and send it to the underlying system.
In a system that uses paravirtualization, a virtual program has the option to bypass the virtual operating system and operate directly with the system’s hardware when it needs hardware access. Some operations are very difficult for the virtual system to accomplish. When a virtual program needs to perform one of these tasks, it takes fewer resources for the program to skip the virtual layer and go directly to the hardware system. Paravirtualization is still done sparingly, as too many direct hardware calls can overtax the system.
In order to use paravirtualization, both the actual system and the virtual system need certain preparations. The biggest factor is the paravirtualization software itself; only operating systems and hypervisors with paravirtualization capacity can perform these functions. While these are often excluded from a standard install, most server software companies have add-ons available that will give their products the correct capabilities.
The second point of compatibility is in the underlying hardware. Using a virtual interface, it is possible to get nearly any operating system to run on nearly any hardware system. In order for paravirtualization to work, the underlying hardware needs to be something the virtual programs knows how to access. If the hardware is very foreign to the system, the paravirtualization hardware calls will fail.