The Virtual Invasion

Virtualization is hot!
But don't take my word for it,
check out eWeek for November 7 (volume 22, number 44),
"The Rise of the Virtual Machines", with three articles of interest.

Confessions of a fanatic: See my post about V12N a couple weeks back. I love VM! It is comforting to read others affirming one's faith. Virtual machines are way cool. We mainframers have known for decades. But let's not sit here feeling vindicated.

There's still some confusion. The phrase "virtual machine" is used for different things with very different characteristics: virtual machines in the Java sense, hardware emulators, paravirtualization (eg: Xen), resource allocation with on-demand class response, and (my favorite) virtual machines in the virtual memory sense. Even in the eWeek article by Jason Brooks, there is some confusion about the abstracted hardware layer. Let's be clear. (Then there are things called "virtual" that do not even present a "machine", but most of those thankfully don't claim to.) For the in-the-virtual-memory-sense I suggest the term hypervisor.

A hypervisor is one step beyond a supervisor. Where paravirtualization requires a polite and cooperative guest and emulators impose performance burdens, the hypervisor makes the underlying hardware transparent, executing guest op systems on the physical machine until some exception calls for intervention. VMware, MS Virtual Server, and z/VM are good examples of hypervisors. The guest may be unable to detect a hypervisor, and in any case requires no special re-coding.

Trying to group platforms and concepts ...

z/VM  the original hypervisor, requires zSeries
VMware  PC hypervisor, requires INTeL or AMD and a host OS
Virtual Server  PC hypervisor, requires INTeL or AMD for Windows host OS
   
FLEX-ES  zSeries emulator (sold with Linux, previously Dynix)
Hercules  zSeries emulator (open source, any of several host OS)
BOCHS  PC emulator (open source, any of several host OS)
   
Xen  paravirtualization, requires guest cooperation
Virtuozzo  "OS virtualization", does not present a machine
JVM  Java Virtual Machine, a misnomer, but popular

With BOCHS, you can run PC Linux on a SPARC running Solaris.
With Hercules, you can run mainframe Linux on an RS/6000 and AIX.
These are emulators.

With z/VM, you get multiple zSeries virtual machines each running
any desired zSeries operating system, but you must have zSeries hardware.
With VMware, you get multiple PC virtual machines each running
any desired PC operating system, but you must have PC hardware.
These are hypervisors, measurably more efficient than emulators.

Where it's really V12N, look for the hypervisor.

-- R;