Plaform virtualization is in the creation of a virtual machine
using a combination of hardware and software.
The creation and management of virtual [pseudo] machines and server
virtualization have both also acquired additional meanings through
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"
The "guest" software, which is often itself a complete
operating system, runs just as if it were installed on a stand-alone
Typically, many such virtual machines are simulated on a given
physical machine. For the "guest" system to function,
the simulation must be robust enough to support all the guest system's
external interfaces, which [depending on the type of virtualization]
may include hardware drivers.
There are several approaches to platform virtualization, based
on how complete a hardware simulation is implemented:
Emulation or Simulation
Emulation refers to the virtual machine simulating the complete
hardware, allowing an unmodified "guest" OS for a completely
different CPU to be run.
This enables the creation of software for new processors before
they were physically available: Bochs, PearPC, PowerPC version of
Virtual PC, QEMU without acceleration, and the Hercules emulator.
There are a number of ways to implement emulation; from state machines
to the use of dynamic recompilation on a full virtualization platform.
Native Virtualization and Full Virtualization
In 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.
Typically, many instances can be run at once. Examples include
VirtualBox, Virtual Iron, Virtual PC, VMware Workstation, VMware
Server (formerly GSX Server),VMware ESX Server, QEMU, Adeos, Mac-on-Linux,
Win4BSD, Win4Lin Pro, and z/VM.
Hardware Enabled Virtualization
In hardware enabled virtualization, tthe virtual machine has its
own hardware and allows a guest OS to be run in isolation.
Often, the virtual machine runs an operating system different than
that of the host computer.
The number of virtual machines installed on a primary OS is limited
only by the host computer’s hardware and memory resources.
Both Intel and AMD provide additional hardware to support virtualization;
including VMware Fusion, Parallels Desktop for Mac, and Parallels
Partial Virtualization [Including "address
Partial virtualization is where the virtual machine simulates
multiple instances of much [but not all] of an underlying hardware
environment, particularly address spaces.
This environment supports resource sharing and process isolation,
but does not allow separate "guest" operating system instances.
Not exactly a virtual machine environment, but important for its
use in such systems as CTSS, the experimental IBM M44/44X, and arguably
systems like MVS. Microsoft Windows and Linux both use this basic
approach, as do the virtualization categories below.
Paravirtualization means the virtual machine does not necessarily
simulate hardware, but instead [or in addition] 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 Xen, and Enomalism; it is implemented via a DIAG ["diagnose"]
hardware instruction in IBM's CMS under VM. Examples include Win4Lin
9x, Sun's Logical Domains, and z/VM.
Operating System-level Virtualization
OS virtualization is a means of virtualizing a physical server
at the operating system level. This enables 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. The same OS kernel is used to implement the "guest"
Applications running in a given "guest" environment view
it as a stand-alone system. Examples are Parallels Workstation,
Parallels Desktop for Mac, Linux-VServer, Virtuozzo (for Windows
or Linux), OpenVZ, Solaris Containers, and FreeBSD Jails.
Application virtualization involves running a desktop or server
application locally, using local resources, within an appropriate
virtual machine. This is in contrast with running the application
as conventional local software [software that has been 'installed'
on the system].
This approach compares with Software installation and Terminal
A virtualized application runs in a small virtual environment
containing the components needed to execute. This includes:
- registry entries
- environment variables
- user interface elements
- global objects.
This virtual environment acts as a layer between the application
and the operating system, eliminating application conflicts and
Examples include the Sun Java Virtual Machine, Softricity, Thinstall,
Altiris, and Trigence.
This approach to virtualization is very different from preceding
ones; being closely akin to virtual machine environments as Smalltalk,
FORTH, Tcl, P-code, or any interpreted language.
NEXT: Resource Virtualization
Back To Top