Virtualization is the ability to run multiple, isolated "virtual machines" on top of a "hypervisor." A virtual machine (VM) is a software implementation of a machine (i.e., a computer) that executes programs like a physical machine. Each VM includes its own kernel, operating system, supporting libraries and applications. A hypervisor provides a uniform abstraction of the underlying physical machine.
Multiple VMs can execute simultaneously on a single hypervisor. The decoupling of the VM from the underlying physical hardware allows the same VM to be started on different physical machines. Thus virtualization is seen as an enabler for cloud computing, but virtualization, even highly automated virtualization, is not cloud computing.
While virtualization provides isolated access, it does not associate this access with an authenticated user for security and charging purposes. Operating system virtualization and hypervisors provides unauthenticated isolation of CPUs and memories, but not a private inter-VM network and not per-allocation persistent storage.
Cloud computing authenticates/authorizes users and then provides them with self-service billable access, private secure inter-VM networks, and quality of service guarantees. Clouds also provide a way for a cloud administrator to define either Service Level Agreements (SLAs) or Quality-of-Service (QoS) specifications that categorize the quality of access (and the resulting charging rate) individual users will experience. In plain virtualization, the notion of QoS or SLA is not exported to the end user as a way of enabling self-service provisioning.
