- Paravirtualization
In computing, paravirtualization is a
virtualization technique that presents a software interface tovirtual machine s that is similar but not identical to that of the underlying hardware.Paravirtualization may allow the
virtual machine monitor (VMM) to be simpler or virtual machines that run on it to achieve performance closer to non-virtualized hardware. However,operating system s must be explicitlyported to run on top of a paravirtualized VMM.History
This is a new term for an old idea. IBM's VM operating system has offered such a facility since 1972 [cite web | url=http://www.vm.ibm.com/history/ | title=VM History and Heritage | publisher=
IBM | accessdate=2007-10-10 ] (and earlier asCP-67 ). In the VM world, this is referred to as a "DIAGNOSE code", because it uses an instruction code used normally only by hardware maintenance software and thus undefined. TheParallels Workstation operating system calls its equivalent a "hypercall". All are the same thing: a system call to thehypervisor below. Such calls require support in the "guest" operating system, which has to have hypervisor-specific code to make such calls.The term "paravirtualization" was first used in the research literature in association with the Denali virtual machine monitor [A. Whitaker, M. Shaw, and S. D. Gribble, "Denali: Lightweight Virtual Machines for Distributed andNetworked Applications", Univ. of Washington Technical Report 02-02-01, (2002). (Available from [http://denali.cs.washington.edu/pubs/index.html Denali publications, technical reports, and talks] )] . The term is also used to describe the Xen, L4 and TRANGO
hypervisor s. All these projects use paravirtualization techniques to support high performance virtual machines onx86 hardware by implementing a virtual machine that does not implement the hard-to-virtualize parts of the actual x86 instruction set.An example of using paravirtualization for performance, the virtual monitor can present the host operating system with an "intelligent NIC" with support for DMA-based sending of packets, even though the NIC on the real system lacks this capability. Sending packets is then done entirely by the virtual monitor and NIC interrupts may be processed by the monitor too. Since delivering interrupts to the host operating system is expensive, performance can improve.
References
ee also
*
Advanced_Power_Virtualization (IBM PowerVM)
*Cooperative Linux (coLinux)
*Exokernel
* KVM
*Logical Domains
*OpenVZ
*QEMU
*Virtual Machine Interface (VMI)
*VMware
*Win4Lin
* Xen
Wikimedia Foundation. 2010.