Survey of Virtual Machine Research Goldberg
- Want multiple simulated machines on top of the real machine.
- User's view: select your own version of OS and run on your own private
- Virtual machine systems: systems which have simulators for multiple copies
of machines on itself. Much of the software for the simulated machine executes
directly on the hardware without software interpretation.
- Virtual machine (VM): the simulated machine.
- Virtual machine monitor (VMM): the simulator software.
- Dual-state hardware organization: privileged and non-privileged mode.
- Extended machine: the conventional organization contains a privileged
software nucleus (kernel) which can execute in the privileged mode. User
programs make calls to this nucleus to have privileged instructions performed
on its behalf.
- Only one bare machine interface thus only one privileged software nucleus
can be run at a given time. Therefore, cannot run any other software that
requires a bare machine interface. E.g. porting user software, testing of OS,
Solutions and some problems:
- The heart of a VM system is the VMM software which transforms the single
machine interface into the illusion of many. Each VM (interface) is an
efficient replica of the machine (includes processor instructions and system
resources). Can run multiple OSs this way.
- Difficult to implement VMMs on machines not designed for them. E.g.
privileged instructions can altered the state of the machine and thus can
interfere with other VMs. The VMM must maintain control over the state of the
- New architectures than provide features to directly support virtual
- f-map: a map between the sets of resources of the VM and the real machine,
which can be used to transform a virtual resource name into a real resource
- Allows for recursion: a VMM can create another VMM which can interact with
- Main sources of overhead: maintaining integrity of the virtual processor;
support of privileged instructions (trap and simulate); support of paging
within VM (2 levels of indirection); console functions.
- Improving performance: policies; compromises to interface (pure vs. impure
VMs); improved or new mechanisms (virtualizable architectures).
- Instead of using VMM: Since machines are much cheaper now, just find
another machine to run another OS for testing, porting etc?