Virtualization is the abstraction of computer hardware resources. This definition is very general; however, the broad range of virtualization products, both hardware and software, makes a more specific definition difficult. There are hardware products that allow for virtualization, software products that create virtual systems, and hardware that assists with software virtualization. All of these products and options perform essentially the same function: they separate the operating system and applications from the underlying hardware.
A number of different types of virtualization are available, including the following:
Full software virtualization
Hardware-assisted software ...