# Virtualization with Xen: Including XenEnterprise, XenServer, and XenExpress
## Chapter 1: An Introduction to Virtualization
### Introduction
Virtualization is available for a nominal cost, in many cases free of charge thanks to open-source initiatives.
### What is Virtualization?
Key points for virtualization include:
* Add a layer of abstraction between the applications and the hardware
* Enable a reduction in costs and complexity
* Provide the isolation of computer resources for improved reliability and security
* Improve service levels and the quality of service
* Better align IT processes with buisness goals
* Eliminate redundancy in, and maximize the utilization of, IT infrastructure
A virtualized product does not necessarily need to fulfill all points.
#### The History of Virtualization
In the 1960s virtualization was referred to as *time sharing*, because it enabled several programmers to use the same computer to perform tasks.
**The Atlas Computer**
It was the fastest computer of its time, partially due to a separation of OS processes in what is called a *supervisor*. The supervisor managed key resources, such as processing time, and was passed special instructions to help it provision and manage the computing environment for the user program's instructions. This was the predecessor to the hypervisor.
Atlas also introduced the concept of virtual memory.
**The M44/44X Project**
The architecture of IBM's M44/44X Project computer was first to coin the term *virtual machine*.
**CP/CMS**
In the late 1960s, the CSC develeped the first successful virtual machine operating system based on fully virtualized hardware, the CP-40. This led to the development of the most popular virtual machine operating systems called VM/370. It was capable of running many VMs with larger virtual memory running on virtual copies of the hardware, all managed by a component called the virtual machine monitor (VMM) running on the real hardware.
**Other Time-Sharing Projects**
Just trivia, nothing important.
**Virtualization Explosion of the 1990s and Early 2000s**
It is popular. Xen is a threat to the big players because of the fact that the Linux community has adopted it and is built into most popular distros.
#### The Answer: Virtualization is...
The book defines virtualization as
> A framework or methodology of dividing the resources of a computer hardware into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time sharing, partial or complete machine simulation, emulation, quality of service, and many others.
Modern virtualization allows multiple OS instances to run concurrently on a single computer. Each instance shares the available resources available on the common physical hardware. A piece of software called a VMM controls use and access to the CPU, memory, storage, and network resources underneath it.
### Why Virtualize?
This book focuses on server virtualization. In servers it is a good idea to use virtualization to decrease costs. Big servers are expensive, but if several users can use the same hardware, smaller actors are able to utilize the resourses.
#### Decentralization versus Centralization
Instead of purchasing an maintaining an entire physical computer, and its necessary peripherals for every application, each application can be given its own operating envorionment, complete with I/O, processing power, and memory, all sharing their underlying their physical hardware.
#### True Tangible Benefits
**Consolidation**
Virtualization can help utilize a system's resources to its full potential. More operating environments are able to run on the same physical hardware, which means that instead of buying more hardware to run the different systems, they can cshare resources and utilize a system fully.
It also helps with migrating an environment to legacy systems, meaning it is easier to migrate older software to new chipsets and processor architectures.
**Reliability**
By partitioning software to different VMs, faults are isolated to the specific VM, thus protecting the system from serious crashes.
**Security**
The same way virtualization can provide shelter from software faults, security faults are also contained to the affected VM.
### How Does Virtualization Work?
There are several software hypervisors and VMMs on the market. They ensure a level of isolation where the low-level, nucleus core of the CPU architecture is brought up closer to the software levels of the architecture to allow each VM to have its own dedicated envorinment.
#### OS Relationships with the CPU Architecture