Paravirtualization
From Wikipedia, the free encyclopedia
In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware. This requires operating systems to be explicitly ported to run on top of the virtual machine monitor (VMM), which the owner of exclusive rights in a proprietary operating system may decline to allow for strategic purposes, but may enable the VMM itself to be simpler and for the virtual machines that run on it to achieve higher performance.
Contents |
[edit] History
This is a new term for an old idea. IBM's VM operating system has offered such a facility for several decades. 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. IBM's Conversational Monitor System uses DIAGNOSE codes to call VM to request services. The Parallels Workstation operating system calls its equivalent a "hypercall". All are the same thing: a system call to the hypervisor below. Such calls require support in the "guest" operating system, which has to have hypervisor-specific code to make such calls.
[edit] Implementations for X86 hardware
The paravirtualization is normally running in ring 0 of an x86 architecture. The operating system is modified to run without the need of executing in ring 0.
The term "paravirtualization" was first used in the research literature in association with the Denali virtual machine monitor[1]. The term is also used to describe the Xen, L4 and TRANGO hypervisors. All these projects use paravirtualization techniques to support high performance virtual machines on x86 hardware.
[edit] References
- ^ A. Whitaker, M. Shaw, and S. D. Gribble, "Denali: Lightweight Virtual Machines for Distributed and Networked Applications", Univ. of Washington Technical Report 02-02-01, (2002). (Available from Denali publications, technical reports, and talks)
[edit] See also
[edit] External links
- General links