The concept of the virtual machine was invented by IBM as a method of time-sharing extremely expensive mainframe hardware [4,5]. As defined by IBM, a ``virtual machine'' is a fully protected and isolated copy of the underlying physical machine's hardware. Thus, each virtual machine user is given the illusion of having a dedicated physical machine. Software developers can also write and test programs without fear of crashing the physical machine and affecting the other users.
![]() |
Figure 1 illustrates the traditional organization of a virtual machine system. A software layer called a virtual machine monitor (VMM) takes complete control of the machine hardware and creates virtual machines, each of which behaves like a complete physical machine that can run its own operating system (OS). Contrast this with a normal system where a single operating system is in control of the machine.
To maximize performance, the monitor gets out of the way whenever possible and allows the virtual machine to execute directly on the hardware, albeit in a non-privileged mode. The monitor regains control whenever the virtual machine tries to perform an operation that may affect the correct operation of other virtual machines or of the hardware. The monitor safely emulates the operation before returning control to the virtual machine. This direct execution property allows mainframe-class virtual machines to achieve close to native performance and sets the technology apart from machine emulators that always impose an extra layer of interpretation on the emulated machine.
The result of a complete machine virtualization is the creation of a set of virtual computers that runs on a physical computer. Different operating systems, or separate instances of the same operating system, can run in each virtual machine. The operating systems that run in virtual machines are termed guest operating systems. Since virtual machines are isolated from each other, a guest operating system crash does not affect the other virtual machines. Users in different virtual machines cannot affect each other catastrophically.
Most of the benefits of mainframe virtual machines apply to the PC
platform, and several new ones have emerged. On mainframes, virtual
machines have been used for timesharing, for partitioning machine
resources among different OSes and applications, as well as for OS and
software development and easing system migration. On a desktop or
workstation PC there is a need to run different operating systems -
primarily the various flavors of Microsoft
and UNIX
-based operating systems. Virtual machines allow these OSes to be run
simultaneously on a single computer.
Intel
-based PCs are also increasingly being used as servers by
traditional enterprises and service providers to host applications.
Frequently, an entire machine is dedicated to a particular service,
application or customer in order to provide fault isolation and
performance guarantees. In this arena, virtual machines can be used
to host applications, provide better resource utilization, and ease
system manageability. Virtual machines can also be easily migrated
and replicated across machines to aid in service provisioning.
Virtual machines can contain identical virtual hardware, even on hosts
with different native hardware, making virtual machines freely
portable between different physical machines.