Virtualization
In Computing, Virtualization is a broad term that usually refers to the abstraction of resources on a computer. Usually this is accomplished using either a virtual machine or an operating system that has tools to enable virtual environments to run inside it.
A simple way of looking at virtualization is that you run a "computer in a computer."
Terms used in this article refer to 'guests' and a 'host.' The host system is what runs the software that makes virtualization possible. A guest is an operating system that runs inside a host.
There are several distinct types of virtualization. A description of several common ways of implementing virtualization follows.
OS Level Virtualization
Generally OS level virtualization involves one running kernel in a system, but several virtual environments running inside that kernel. OpenVZ, User Mode Linux and Solaris Zones are examples of virtualization solutions that utilize OS level virtualization.
Paravirtualization
When several 'virtual machines' run on top of a 'host' operating system, this is known as paravirtualization. When an operating system runs inside a virtual machine in this way it runs a completely seperate kernel, and in fact can be an entirely different operating system. There are real world examples of virtual machines running Microsoft Windows that run on top of a Linux server, for example. The reverse is also possible - Linux could run inside a virtual machine that runs on top of Windows Server for example.
Xen and VMware are two examples of software products that implement paravirtualization.