Platform Virtualization
There are several approaches to platform virtualization:
Emulation or Simulation
The virtual machine simulates the complete hardware, allowing an
unmodified "guest" OS for a completely different CPU to
be run.
This approach enables the creation of software for new processors
before they were physically available.
Examples include Bochs, PearPC, PowerPC version of Virtual PC,
QEMU without acceleration, and the Hercules emulator.
Emulation is implemented using a variety of techniques, from state
machines to the use of dynamic recompilation on a full virtualization
platform.
Native Virtualization and Full Virtualization
The virtual machine simulates enough hardware to allow an unmodified
"guest" OS (one designed for the same CPU) to be run in
isolation. This approach was pioneered in 1966 with IBM CP-40 and
CP-67, predecessors of VM family.
Examples outside mainframe include: Parallels Workstation, Parallels
Desktop for Mac, VirtualBox, Virtual Iron, Virtual PC, Virtual Server,
VMware Workstation, VMware Server (formerly GSX Server), QEMU, Adeos,
Mac-on-Linux, Win4BSD, Win4Lin Pro, and Egenera vBlade technology.
Hardware Enabled 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, and Parallels Workstation.
Partial Virtualization
The virtual machine simulates multiple instances of much 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 it was used
in such systems as CTSS, the experimental IBM M44/44X, and systems
like MVS.
More recent systems, such as Microsoft Windows and Linux use this
basic approach.
Paravirtualization
The virtual machine does not necessarily simulate hardware, but
instead of, or in addition to, offers a special API that can only
be used by modifying 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 [the origin of the term
hypervisor].
Examples include: VMware ESX Server, IBM's LPARs[4],Win4Lin 9x,
Sun's Logical Domains, z/VM,[citation needed] and TRANGO.
Cross-platform Virtualization
Running an application compiled for a specific CPU and operating
system on a platform with a different CPU and operating system,
without modification to source code or binaries.
Examples include: Apple Rosetta and Transitive QuickTransit.
Also See
Operating System [OS] Virtualization
Application Virtualization
NEXT: Server Virtualization
Back To Top
|