What if you could run several operating systems on one computer at the same time?
Virtual machines
make that possible and are a key foundation of modern cloud computing.
This post walks through virtualization, virtual-machine architecture, hypervisors, hardware support, and the advantages and disadvantages.
A virtual machine places a software layer above real hardware, allowing an
independent operating system
to run on top.
A hypervisor is the core component that creates and manages virtual machines.
Virtualizing access to basic resources such as CPU and memory also requires substantial computation.
To help,
modern CPUs directly support virtualization instruction sets such as VT-x and AMD-V
.
Virtual machines separate operating systems and resources to make efficient use of one physical device.
Because they underpin cloud, server, and development environments, understanding their structure and operation is useful.
The next post covers
networks and distributed systems
.