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
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.