Paravirtualization is a way of running guest operating systems in which the guest is changed to know it is virtualized and to work with the hypervisor on purpose. Instead of fooling an unmodified operating system into thinking it owns real hardware, paravirtualization gives the guest a slightly altered interface and asks it to call the hypervisor directly for the operations that are awkward or slow to emulate. The reward is speed; the cost is that the guest’s source code must be adapted.
The technique was popularized by Xen, the Cambridge-built hypervisor whose 2003 paper “Xen and the Art of Virtualization” set out the approach in detail. The Xen authors argued that full emulation of a commodity processor like x86 was both difficult and slow, and that a better trade-off was to present the guest with a virtual machine that is similar but not identical to the underlying hardware. They reported that this let many operating systems share one machine with very low overhead, while keeping strong isolation between them.
In practice, paravirtualization replaces the most expensive privileged operations, such as page-table updates and device access, with explicit calls into the hypervisor, sometimes called hypercalls. Because the guest cooperates rather than being caught by traps, the hypervisor avoids the costly software tricks that fully unmodified guests required on the x86 of that era.
Paravirtualization mattered most before processors gained the hardware virtualization extensions described by Intel VT-x and AMD-V. Once the hardware could trap sensitive operations efficiently, unmodified guests could run fast too, and pure paravirtualization became less essential. Even so, the cooperative idea survives: modern systems still use paravirtualized drivers for disk and network I/O because a guest that knows it is virtualized can move data more efficiently than one that does not.