A hypervisor in computing is a scheme which allows multiple operating systems to run, unmodified, on a host computer at the same time. The term is an extension of the earlier term supervisor, which was commonly applied to operating system kernels in that era.
The first computer system designed specifically for virtualization was the IBM S/360 Model 67 mainframe computer, developed in the late 1960s. It included page translation table hardware for virtual memory and other techniques that allowed a full virtualization of all kernel tasks, including I/O and interrupt handling. Prior to this point, computer hardware had only been virtualized enough to allow multiple user applications to be run. With the advent of the IBM S/360 model 67, the supervisor state was virtualized as well, thus allowing multiple operating systems to run simultaneously. The virtualization features became a standard part of the later IBM S/370 line and its succesors, including today's zSeries.
These features were most fully exploited in VM/CMS, arguably one of the first and most important open source operating systems. VM stood for Virtual Machine, emphasizing that all, and not just some, of the hardware interfaces had been virtualized. This system enjoyed early and rapid development by universities as well as within IBM; however, it was eventually swallowed by IBM during political infighting, essentially killing off the open-source version in a disputed and bitter battle. All modern-day IBM mainframes in the zSeries line continue to be backwards compatible with the four-decade old IBM/360 line.
The x86 architecture used in most PC systems is particularly hard to virtualize. Full virtualization (presenting the illusion of a complete set of standard hardware) on x86 has significant costs in hypervisor complexity and runtime performance.
An alternative approach requires that the guest operating system be modified to make system calls to the hypervisor, rather than executing machine I/O instructions which are then simulated by the hypervisor. This is called paravirtualization in Xen, a "hypercall" in Parallels Workstation, and a "DIAGNOSE code" in IBM's VM. All are really the same thing, a system call to the hypervisor below.
CPU vendors are adding hardware virtualization assistance to their products. Intel's codename for these extensions is Vanderpool, AMD's is Pacifica. These extensions will address the parts of x86 that are difficult or inefficient to virtualize, providing additional support to the hypervisor. This enables simpler virtualization code and a higher performance for full virtualization.
Others, like Xen or TRANGO, are implemented as software-only virtual machines running on a normal host operating system such as Linux. Xen is able to run both paravirtualized and, with the help of the hardware virtualization extensions Intel VTx, fully virtualized (i.e. an unmodified operating system) as guest operating systems. In fact, Xen has successfully demonstrated Windows XP running unmodified. The Xen distribution already contains versions of FreeBSD, Linux, NetBSD, and Plan 9 from Bell Labs that have been so modified. TRANGO is more focused on embedded operating system and CPU architectures (ARM, MIPS, PowerPC) and supports both embedded open operating system like Linux, and RToperating system such as eCoperating system or µC/OS-II. User programs will continue to work on Xen and TRANGO without change.
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Hypervisor".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world