What are Virtual Machines
Traditionally, applications have run directly on an OS on a PC or a server. Each PC
or server would run only one OS at a time. Thus, the vendor had to rewrite parts
of its applications for each OS/platform they would run on. An effective strategy
for dealing with this problem is known as virtualization . Virtualization technology
enables a single PC or server to simultaneously run multiple operating systems or
multiple sessions of a single OS. A machine with virtualization can host numerous
applications, including those that run on different operating systems, on a single
platform. In essence, the host operating system can support a number of virtual
machines (VM) , each of which has the characteristics of a particular OS and, in some
versions of virtualization, the characteristics of a particular hardware platform.
The VM approach is becoming a common way for businesses and individuals
to deal with legacy applications and to optimize their hardware usage by maximizing
the number of kinds of applications that a single computer can handle [GEER09].
Commercial VM offerings by companies such as VMware and Microsoft are widely
used, with millions of copies having been sold. In addition to their use in server
environments, these VM technologies also are used in desktop environments to run
multiple operating systems, typically Windows and Linux.
The specific architecture of the VM approach varies among vendors.
Figure 2.13 shows a typical arrangement. The virtual machine monitor (VMM) , or
hypervisor , runs on top of (or is incorporated into) the host OS. The VMM sup-
ports VMs, which are emulated hardware devices. Each VM runs a separate OS.
The VMM handles each operating system’s communications with the processor,
the storage medium, and the network. To execute programs, the VMM hands off
the processor control to a virtual OS on a VM. Most VMs use virtualized network
Shared hardware
Host operating system
Virtual machine monitor
Virtual
machine 1
Virtual
machine 2
Virtual
machine n
Applications
and
processes
Applications
and
processes
Applications
and
processes
Virtual Memory Concept