main

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.