Virtual Machine Introduction

Basics

The modern crowd thinks that they have found the panacea of computing, the virtual machine. It lets you have many "software" computer systems individualy using a single hardware computer system.

This is great, for bugs and stuff in one system don't affect the others. You can move virtual machines to other CPUs (even off site) and they may not even notice the difference if the communication links are setup correctly. In other words, it allows for redundancy and fail-safe behavior with a few number of machines than you would need. It also lets you migrate machines between hardware computing platforms .. which is something harder to do and needs hands-on help with a hard computer system.


Real VMs

The thing is, this is passe. IBM has been doing it for years with the 370s and beyond. If you want to see what serious virtual machines are about, checkout there stuff. Which, by the way, they have been running since the 1970s or so. They even have tools which let you move a running virtual machine to another location ... while it is running. It isn't a big deal even. Or, to have a ready to rock-n-roll hot spare that is just a few instructions behind the running box ... in case it goes down due to whatever reason (wuch as power or communication outages).

They are truly the masters -- bow to them!


Terminology

I'll warn you that a lot of this stuff is modern VM centric. In the fully virtualized IBM world, there really is no no-VM environment to consider.

Hypervisor
The Hypervisor is the thing that provides the virtual services to virtual machines. It is the thing that creates the virtual enviroment for other operating systems to run in. It translates their requests for service to goto a host operating system, or to bare hardware. It is a kernel in its own right.
Host Operating System
The host operating system provides the services needed for a hypervisor to run. From things as simple as access to hardware devices, to config files, to booting the machine, this is the thing that takes care of it all. A host operating system can be a full blown OS that also runs VMs, or it can be some sort of
Guest Operating System
Virtual Machine

In a fully virtualized environment, such as what IBM runs, there isn't a whole lot to say about things. The samer OS that runs on the bare hardware can run as a virtual machine ... and it will never know the difference! Heck, the OS running the virtual machine runs virtual machines. You can even start up virtual virtual machines, and it just works. Pretty Darn cool if you ask me!

That isn't the case with non-virtualizable hardware. Something has to provide the virtual environment to the virtual machines. That thing is called a hypervisor. The hypervisor manages the virtual machines, and provides the virtual services that the individual machines request.

The hypervisor can be a dedicated OS that just provides virtual services to the running VMs. That is what VMware server does; a dedicated virtual machine OS that doesn't do much besides run virtual machines. It is a nice low-overhead (resource wise) tool to provide virtualization at lower overhead costs. One problem with this dedicated hypervisor is that it is different from all the host OSes; something that never happened in IBM land. It is a different set of tools, perhaps with a bunch of limitiations that make it not useful to administer itself with.

The other common hypervisor setup is a normal OS running a service that provides VM functionality to


Modern VMs

Really these are all hypervisors, the tool which creates the virtual environment which the virtual machine then runs in.

Of this collection, Xen is probably the closest to the original true hypervisors. Not in construction, but in functinoality. It provides a true virtual machine interface to the kernels on the virtual machines. That means that operatinos are more easily virtualized, which leads to higher throughput virtual computing through well defined interfaces.

The others are really virtual computing in the form of simulated computer hardware. Which is often a really great thing to do. The thing is, in the original IBM 370 VM world, the hardware operations and the virtual operations were almost identical .. because the hardware was designed with good interfaces, and the CPU had instructions to use those interfaces. Implemntation details were buried. The current PC world (and most other manufacturers) don't have the really cool setup, so they need to emulate a real machine to provide a VM. That comes with a cost of going slower.


Bolo's VM Notes
Bolo Notes
Bolo's Home Page
Last Modified: Tue Mar 4 11:26:52 CST 2014
Bolo (Josef Burger) <bolo@cs.wisc.edu>