Chapter 1. General Introduction to Virtualization

1.1. What is Virtualization?

Virtualization is a broad computing term used for running software, usually multiple operating systems, concurrently and in isolation from other programs on a single system. Virtualization is accomplished by using a hypervisor. This is a software layer or subsystem that controls hardware and enables running multiple operating systems, called virtual machines (VMs) or guests, on a single (usually physical) machine. This machine with its operating system is called a host. There are several virtualization methods:
Full virtualization
Full virtualization uses an unmodified version of the guest operating system. The guest addresses the host’s CPU using a channel created by the hypervisor. Because the guest communicates directly with the CPU, this is the fastest virtualization method.
Paravirtualization
Paravirtualization uses a modified guest operating system. The guest communicates with the hypervisor. The hypervisor passes the unmodified calls from the guest to the CPU and other interfaces, both real and virtual. Because the calls are routed through the hypervisor, this method is slower than full virtualization.
Software virtualization (or emulation)
Software virtualization uses binary translation and other emulation techniques to run unmodified operating systems. The hypervisor translates the guest calls to a format that can be used by the host system. Because all calls are translated, this method is slower than virtualization. Note that Red Hat does not support software virtualization on Red Hat Enterprise Linux.
For information about the benefits of using virtualization, see Chapter 2, Why Use Virtualization?