Virtualization in computing is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system (OS),
storage device, or network resources.
Types of virtualization
Hardware virtualization or platform virtualization refers to the creation of a virtual machine that acts like a real computer with an operating system.
Software executed on these virtual machines is separated from the underlying hardware resources.
For example, a computer that is running Microsoft Windows may host a
virtual machine that looks like a computer with the Ubuntu Linux operating system; Ubuntu-based software can be run on the virtual machine.
In hardware virtualization, the host machine is the actual machine on which the virtualization takes place, and the guest machine is the virtual machine.
The words host and guest are used to distinguish the software that runs on the actual machine from the software that runs on the virtual machine.
The software or firmware that creates a virtual machine on the host hardware is called a hypervisor or Virtual Machine Manager.
Different types of hardware virtualization include:
- Full virtualization – Almost complete simulation of the actual hardware to allow software, which typically consists of a guest operating system, to run unmodified.
- Partial virtualization – Some but not all of the target environment is simulated. Some guest programs, therefore, may need modifications to run in this virtual environment.
- Paravirtualization -A hardware environment is not simulated; however, the guest programs are executed in their own isolated domains, as if they are running on a separate system. Guest programs need to be specifically modified to run in this environment.
Hardware-assisted virtualization is a way of improving the efficiency of hardware virtualization. It involves employing specially designed CPUs and hardware components that help improve the performance of a guest environment.
Hardware virtualization is not the same as hardware emulation. In hardware emulation, a piece of hardware imitates another, while in hardware virtualization, a hypervisor (a piece of software) imitates a particular piece of computer hardware or the entire computer. Furthermore, a hypervisor is not the same as an emulator; both are computer programs that imitate hardware, but their domain of use in language differs.
- Desktop virtualization is the concept of separating the logical desktop from the physical machine.
- Operating system-level virtualization, hosting of multiple virtualized environments within a single OS instance.
- Application virtualization and workspace virtualization, the hosting of individual applications in an environment separated from the underlying OS.
Application virtualization is closely associated with the concept of portable applications.
- Service virtualization, emulating the behavior of dependent (e.g., third-party, evolving, or not implemented) system components that are needed to exercise an application under test (AUT) for development or testing purposes. Rather than virtualizing entire components, it virtualizes only specific slices of dependent behavior critical to the execution of development and testing tasks.
- Memory virtualization, aggregating RAM resources from networked systems into a single memory pool.
- Virtual memory, giving an application program the impression that it has contiguous working memory, isolating it from the underlying physical memory implementation.
- Storage virtualization, the process of completely abstracting logical storage from physical storage.
- Distributed file system.
- Storage hypervisor
- Data virtualization, the presentation of data as an abstract layer, independent of underlying database systems, structures and storage.
- Database virtualization, the decoupling of the database layer, which lies between the storage and application layers within the application stack over all.
- Network virtualization, creation of a virtualized network addressing space within or across network subnets.