Virtualization is a way of creating a virtual version of something.
With regard to computers, that “something” could be CPU, RAM, storage, or networking, for example.
Virtualization makes it possible to create “fake” (or virtual) versions of these things, which would then allow you to run a computer inside your computer. (Insert Inception GIF.)
This means you could run Windows on your MacBook. Linux on Windows. Or even Windows on Windows.
How is this possible?
A hypervisor makes this possible. A hypervisor is a piece of software (like any other application you can install on a computer). It’s what allows you to create computers inside other computers.
The hypervisor essentially borrows (or pools) resources from the underlying physical machine (or host), so they can be used in a virtual environment.
In other words, it makes virtual hardware components, like CPU, RAM, GPU, storage, and networking.
Once a hypervisor is installed on a host, you can install or build virtual machines (VMs) on top of it.
What is a virtual machine?
A VM is simply a software based computer. It’s a “fake” computer that runs on top of a hypervisor.
A VM runs like a physical computer, in that it has an operating system (OS) and applications. The difference is that a VM gets its resources via the hypervisor, from the host underneath.
To visualize this:
- At the base level you have the host (for example, your computer).
- On top of that, the hypervisor is installed.
- On top of the hypervisor, virtual machines can be created.
Two two types of hypervisors
It’s helpful to understand there are two types of hypervisors: Type 1 and Type 2.