DEV Community

Discussion on: Explain virtualization like I'm five

jakesweb profile image
Jacob Colborn

Virtualization has a lot of different moving pieces and parts. There are a few different products for virtualization as of writing, but for the most part the underlying structures stay the same.

There is a virtualization manager that creates virtual copies of the physical hardware. Basically, virtual addressing for the CPU, RAM, GPU, and I/O. These addresses are overlayed on top of the physical hardware and mapped by the virtualization manager. Intel and AMD both have virtualization technologies that allow the manager to utilize these virtual addresses in containers that are separate (meaning that one virtual machine cannot see the code being executed by any of the other virtual machines since the address spaces are kept private, even when using shared resources).

The virtual manager is then responsible for distributing the workload from the virtual machines to the physical machine. Each manager handles this very, very differently. The key thing is that each virtual machine can have its own share of the hardware or it can share with all the other virtual machines. When it is dedicated then it literally "steals" that particular hardware away from the physical computer and dedicates to that virtual machine so nothing else can ever use that hardware. When it is shared, the commands to the computer are sent in when the resources are ready for it (queuing as needed).

I hope that is ELI5 enough. I am not always the best at breaking things down to the simplest level, but I think this hits the high-level overview of that. As I mentioned, there are a lot of different virtual managers that handle things differently. I work with VMware and Hyper-V, mostly, but do have experience with KVM and Xen as well.

janpauldahlke profile image
jan paul

solid writeup bro +1