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










