Full virtualization


Full virtualization

:"The concept of full virtualization is well established in the literature, but not always using this specific term. See virtualization regarding terminology." Full virtualization, in computer science, is a virtualization technique used to implement a certain kind of virtual machine environment: one that provides a "complete simulation of the underlying hardware." The result is a system in which "all" software capable of execution on the raw hardware can be run in the virtual machine. In particular, this includes all operating systems. (This is different from other forms of virtualization – which allow only certain or modified software to run within a virtual machine.)

The prototypical illustration of full virtualization is in the control program of IBM's CP/CMS operating system – first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967-1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer. Each such virtual machine had the complete capabilities of the underlying machine, and (for its user) the virtual machine was indistinguishable from a private system. This simulation was comprehensive, and was based on the "Principles of Operation" manual for the hardware. It thus included such elements as instruction set, main memory, interrupts, exceptions, and device access. The result was a single machine that could be multiplexed among many users.

Full virtualization is only possible given the right combination of hardware and software elements. For example, it was not possible with most of IBM's System/360 series with the exception being the IBM System/360-67; nor was it possible with IBM's early System/370 system until IBM added virtual memory hardware to the System/370 series in 1972.

Similarly, full virtualization was not quite possible with the x86 platform until the 2005-2006 addition of the AMD-V and IVT extensions (see x86 virtualization). Many virtual machine systems for the x86 platform came very close and claimed full virtualization even prior to the AMD-V and IVT additions. Examples include Adeos,Mac-on-Linux, Parallels Desktop for Mac, Parallels Workstation VMware Workstation, VMware Server (formerly GSX Server), VirtualBox, Win4BSD, and Win4Lin Pro. VMware, for instance, employs a technique called binary translation to automatically modify x86 software on-the-fly to replace instructions that "pierce the virtual machine" with a different, virtual machine safe sequence of instructions; this technique provides the appearance of full virtualization.cite web
title=Understanding Full Virtualization, Paravirtualization, and Hardware Assist
publisher=VMware
date=11 Sep 2007
author=VMware
accessdate=2007-12-09
url=http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf
format=PDF
]

A key challenge for full virtualization is the interception and simulation of privileged operations, such as I/O instructions. The effects of every operation performed within a given virtual machine must be kept within that virtual machine – virtual operations cannot be allowed to alter the state of any other virtual machine, the control program, or the hardware. Some machine instructions can be executed directly by the hardware, since their effects are entirely contained within the elements managed by the control program, such as memory locations and arithmetic registers. But other instructions that would "pierce the virtual machine" cannot be allowed to execute directly; they must instead be trapped and simulated. Such instructions either access or affect state information that is outside the virtual machine.

Full virtualization has proven highly successful for a) sharing a computer system among multiple users, b) isolating users from each other (and from the control program) and c) emulating new hardware to achieve improved reliability, security and productivity.

ee also

* Virtualization
* CP/CMS
* Popek and Goldberg Virtualization Requirements
* Native virtualization
* Partial virtualization
* Comparison of virtual machines

References

See specific sources listed under virtualization and (for historical sources) CP/CMS.

External links

* [http://x86virtualization.com/ General current information about x86 Virtualization]
* [http://virtual-strategy.com/ deskop and server virtualization resources]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Virtualization — In computing, virtualization is a broad term that refers to the abstraction of computer resources:* Platform virtualization, which separates an operating system from the underlying platform resources ** Full virtualization ** Hardware assisted… …   Wikipedia

  • Timeline of virtualization development — Timelines Note: This timeline is missing data for important historical systems, including: Atlas Computer (Manchester), GE 645, Burroughs B5000* 1964 ** IBM Cambridge Scientific Center begins development of CP 40. * 1965 ** IBM M44/44X,… …   Wikipedia

  • Hardware-assisted virtualization — In computing, hardware assisted virtualization is a platform virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors. Full virtualization is used to simulate a… …   Wikipedia

  • Partial virtualization — Note: The concept of partial virtualization is well established in the literature, but not always using this specific term. See virtualization regarding terminology. Partial virtualization, in computer science, is a virtualization technique used… …   Wikipedia

  • Platform virtualization — In computing, platform virtualization is a term that refers to the abstraction of computer resources. Virtualization hides the physical characteristics of computing resources from their users, be they applications, or end users. [ cite web | last …   Wikipedia

  • X86 virtualization — is the method by which x86 based guest operating systems are run under another host x86 operating system, with little or no modification of the guest OS. The x86 processor architecture did not originally meet the Popek and Goldberg virtualization …   Wikipedia

  • Memory virtualization — In computer science, memory virtualization decouples volatile random access memory (RAM) resources from individual systems in the data center, and then aggregates those resources into a virtualized memory pool available to any computer in the… …   Wikipedia

  • Desktop virtualization — (sometimes called client virtualization[1]), as a concept, separates a personal computer desktop environment from a physical machine using the client–server model of computing. Virtual desktop infrastructure, sometimes referred to as virtual… …   Wikipedia

  • Application virtualization — is an umbrella term that describes software technologies that improve portability, manageability and compatibility of applications by encapsulating them from the underlying operating system on which they are executed. A fully virtualized… …   Wikipedia

  • Operating system-level virtualization — is a server virtualization method where the kernel of an operating system allows for multiple isolated user space instances, instead of just one. Such instances (often called containers, VEs, VPSs or jails) may look and feel like a real server,… …   Wikipedia