Datasheet
Chapter 1: Overview of Virtualization
2
What Is Virtualization?
Virtualization is simply the logical separation of the request for some service from the physical resources
that actually provide that service. In practical terms, virtualization provides the ability to run
applications, operating systems, or system services in a logically distinct system environment that is
independent of a specific physical computer system. Obviously, all of these have to be running on a
certain computer system at any given time, but virtualization provides a level of logical abstraction that
liberates applications, system services, and even the operating system that supports them from being
tied to a specific piece of hardware. Virtualization ’ s focus on logical operating environments rather than
physical ones makes applications, services, and instances of an operating system portable across
different physical computer systems.
The classic example of virtualization that most people are already familiar with is virtual memory, which
enables a computer system to appear to have more memory than is physically installed on that system.
Virtual memory is a memory-management technique that enables an operating system to see and use
non contiguous segments of memory as a single, contiguous memory space. Virtual memory is
traditionally implemented in an operating system by paging, which enables the operating system to use
a file or dedicated portion of some storage device to save pages of memory that are not actively in use.
Known as a “ paging file ” or “ swap space, ” the system can quickly transfer pages of memory to and from
this area as the operating system or running applications require access to the contents of those pages.
Modern operating systems such as UNIX - like operating systems (including Linux, the *BSD operating
systems, and Mac OS X) and Microsoft Windows all use some form of virtual memory to enable the
operating system and applications to access more data than would fit into physical memory.
As I ’ ll discuss in the next few sections, there are many different types of virtualization, all rooted around
the core idea of providing logical access to physical resources. Today, virtualization is commonly
encountered in networking, storage systems, and server processes, at the operating system level and at
the machine level. Xen, the subject of this book, supports machine - level virtualization using a variety of
clever and powerful techniques.
As a hot buzzword, it ’ s tempting for corporate marketing groups to abuse the term “ virtualization ” in
order to get a bit more traction for their particular products or technologies. The use of the term
“ virtualization ” in today ’ s marketing literature rivals the glory days of terms such as “ Internet ” and
“ network - enabled ” in the 1990s. To try to cut through the haze surrounding what is and what is not
virtualization, the next few sections discuss the most common classes of virtualization and virtualization
technology today.
Whenever possible, references in this section to virtualization technologies refer to centralized resources
for that term or technology. I ’ ve tried to use the Wikipedia entries as a primary reference for most terms
and technologies because in most cases, the Wikipedia provides a great, product - agnostic resource that
doesn ’ t promote any single technical solution for a given technology. When looking things up on
Wikipedia, be aware that terms there are case - sensitive — and that Wikipedia is only a starting point for
good information.
Application Virtualization
The term “ application virtualization ” describes the process of compiling applications into machine -
independent byte code that can subsequently be executed on any system that provides the appropriate
virtual machine as an execution environment. The best known example of this approach to virtualization
c01.indd 2c01.indd 2 12/14/07 3:57:18 PM12/14/07 3:57:18 PM