Virtualization describes a technology in which an application, guest operating system or data storage is abstracted away from the true underlying hardware or software.
A key use of virtualization technology is server virtualization, which uses a software layer called a hypervisor to emulate the underlying hardware. This often includes the CPU's memory, I/O and network traffic.
The guest operating system, normally interacting with true hardware, is now doing so with a software emulation of that hardware, and often the guest operating system has no idea it's on virtualized hardware. While the performance of this virtual system is not equal to the performance of the operating system running on true hardware, the concept of virtualization works because most guest operating systems and applications don't need the full use of the underlying hardware. This allows for greater flexibility, control and isolation by removing the dependency on a given hardware platform.
While initially meant for server virtualization, the concept of virtualization has spread to applications, networks, data and desktops. Out focus primarily lies within server and desktop-based virtualization applications.