Virtual Machines
Virtual machines abstract the hardware of a single computer into several different execution environments.
VM’s involve several components:
- host: hardware system that runs the VM’s
- Virtual Machine Manager (VMM) aka hypervisor: creates an runs VM’s
- guest: process provided with a virtual copy of the host.
|-----------| |------------------------------------|
| | | processes | | |
| | | | processes | |
| processes | | | | processes |
| | | | | |
| | |-----------|-----------|------------|
|-----------| | kernel | kernel | kernel |
| kernel | |-----------|-----------|------------|
|-----------| | VM1 | VM2 | VM3 |
| hardware | |------------------------------------|
|-----------| | hypervisor |
|------------------------------------|
| hardware |
|------------------------------------|
Hypervisor implementations vary:
- type 0 hypervisor: hardware based solutions that provide support at the firmware level.
- type 1 hypervisor: OS like software built to provide virtualization.
- type 2 hypervisor: are applications that run on other operating systems, which do not know that virtualization is taking place.
VCPU: virtual CPU. does not execute code but represents the state of the CPU as the guest machine believes it to be.
Summary
Virtualization is a method of providing a guest with a duplicate of a system’s underlying hardware. Multiple guests can run on a given syste, each believing it is the native operating system in full control of the system.