Platform virtualization
From Wikipedia, the free encyclopedia
This article is in need of attention from an expert on the subject. WikiProject Computer science or the Computer science Portal may be able to help recruit one. (October 2007) |
In computing, platform virtualization is a virtualization of computers or operating systems. It hides the physical characteristics of computing platform from the users,[1] instead showing another abstract, emulated computing platform.
Contents |
[edit] Concept
The term "virtualization" was coined in the 1960s, to refer to a virtual machine (sometimes called pseudo machine), a term which itself dates from the experimental IBM M44/44X system.[citation needed] The creation and management of virtual machines has been called platform virtualization, or server virtualization, more recently.
Platform virtualization is performed on a given hardware platform by host software (a control program), which creates a simulated computer environment, a virtual machine, for its guest software. The guest software is not limited to user applications; many hosts allow the execution of complete operating systems. The guest software executes as if it were running directly on the physical hardware, with several notable caveats. Access to physical system resources (such as the network access, display, keyboard, and disk storage) is generally managed at a more restrictive level than the processor and system-memory. Guests are often restricted from accessing specific peripheral devices, or may limited to a subset of the device's native capabilities, depending on the hardware access policy implemented by the virtualization host.
[edit] Reasons for virtualization
In case of server consolidation, many small physical servers are replaced by one larger physical server, to increase the utilization of costly hardware resources such as CPU. Although hardware is consolidated, typically OSes are not. Instead, each OS running on a physical server becomes converted to a distinct OS running inside a virtual machine. The large server can "host" many such "guest" virtual machines. This is known as Physical-to-Virtual (P2V) transformation.
A virtual machine can be more easily controlled and inspected from outside than a physical one, and its configuration is more flexible. This is very useful in kernel development and for teaching operating system courses.[2]
A new virtual machine can be provisioned as needed without the need for an up-front hardware purchase. Also, a virtual machine can easily be relocated from one physical machine to another as needed. For example, a salesperson going to a customer can copy a virtual machine with the demonstration software to his laptop, without the need to transport the physical computer. At the same time, an error inside a virtual machine does not harm the host system, so there is no risk of breaking down the OS on the laptop.
Because of the easy relocation, virtual machines can be used in disaster recovery scenarios.
There are several approaches to platform virtualization.
[edit] Full virtualization
In full virtualization, the virtual machine simulates enough hardware to allow an unmodified "guest" OS (one designed for the same instruction set) to be run in isolation. This approach was pioneered in 1966 with the IBM CP-40 and CP-67, predecessors of the VM family. Examples outside the mainframe field include Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, VMware Server (formerly GSX Server), QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro, and Egenera vBlade technology.
[edit] Hardware-assisted virtualization
In hardware-assisted virtualization, the hardware provides architectural support that facilitates building a virtual machine monitor and allows guest OSes to be run in isolation [3]. In 2005 and 2006, Intel and AMD provided additional hardware to support virtualization. Examples include Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox and Parallels Workstation.
Hardware platforms with integrated virtualization technologies include:
- x86 (and x86_64)—AMD-V (previously known as Pacifica), Intel VT (previously known as Vanderpool)
- IOMMU implementations by both AMD and Intel.
- POWER (IBM/Power.org)
- Virtage (Hitachi)
- UltraSPARC T1 & 2 (Sun)
[edit] Partial virtualization
In partial virtualization (and including "address space virtualization"): The virtual machine simulates multiple instances of much (but not all) of an underlying hardware environment, particularly address spaces. Such an environment supports resource sharing and process isolation, but does not allow separate "guest" operating system instances. Although not generally viewed as a virtual machine category per se, this was an important approach historically, and was used in such systems as CTSS, the experimental IBM M44/44X, and arguably systems like MVS and the Commodore 64 (a couple of 'task switch' programs). (Many more recent systems, such as Microsoft Windows and Linux, as well as the remaining categories below, also use this basic approach.)
[edit] Paravirtualization
In paravirtualization, the virtual machine does not necessarily simulate hardware, but instead (or in addition) offers a special API that can only be used by modifying[clarification needed] the "guest" OS. This system call to the hypervisor is called a "hypercall" in TRANGO and Xen; it is implemented via a DIAG ("diagnose") hardware instruction in IBM's CMS under VM[clarification needed] (which was the origin of the term hypervisor). Examples include IBM's LPARs[4],Win4Lin 9x, Sun's Logical Domains, z/VM,[citation needed] and TRANGO.
[edit] Operating system-level virtualization
In operating system-level virtualization, a physical server is virtualized at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. The "guest" OS environments share the same OS as the host system – i.e. the same OS kernel is used to implement the "guest" environments. Applications running in a given "guest" environment view it as a stand-alone system. Examples are Linux-VServer, Parallels Virtuozzo Containers, OpenVZ, Solaris Containers, FreeBSD Jails and iCore Virtual Accounts.
[edit] References
- ^ Turban, E (2008). "Electronic Commerce A Managerial Perspective". Prentice-Hall. P27. http://wps.prenhall.com/wps/media/objects/5073/5195381/pdf/Online_Chapter_19.pdf.; "Virtualization in education". IBM. http://www-03.ibm.com/industries/education/doc/content/resource/thought/3371378110.html.
- ^ Examining VMware Dr. Dobb’s Journal August 2000 By Jason Nieh and Ozgur Can Leonard
- ^ Uhlig, R. et al.; "Intel virtualization technology," Computer , vol.38, no.5, pp. 48-56, May 2005
- ^ Borden, T.L. et al.; Multiple Operating Systems on One Processor Complex. IBM Systems Journal, vol.28, no.1, pp. 104-123, 1989
[edit] See also
- Virtual appliance
- Comparison of platform virtual machines
- Hypervisor
- Popek and Goldberg virtualization requirements