A recent film ignited a new
generation of armchair epistemologists when it proposed that we could be living
inside an elaborate computer simulation. While your philosophy major friends
were quick to point out that thinkers since Descartes have posed the same question,
it's likely that none of them ever considered the converse: what if, unbeknownst to
them, our computers were really running inside other computers for the selfish
interests of a special group of people?
As esoteric as this may sound, such a setup has
been in use for a very long time. Virtual machine software can fool an operating
system into thinking it's running on its own hardware, when in reality it's
simply mooching off unused CPU cycles and RAM. Since the OS is running on its
native platform, no emulation is necessary; virtualization allows it to run with
little cost to CPU performance. However, since display and I/O functions are
mapped to slightly different components (a window or a virtual partition, for
example), they incur a slight performance hit.
Product:
Microsoft Virtual PC 2004
Developer's site:
Microsoft Demo: 45-day trial Cost: US$129 (Shop
for this title) System requirements: 400MHz Pentium II or better, 32MB RAM, Windows 2000
or XP
Product:
VMware Workstation 4.5 Developer's site:VMware Demo: 30-day trial Cost: US$189 to download, US$199 with packaging (Shop
for this title) System requirements: 500MHz Pentium II or better, 128MB RAM, Windows NT
4.0, 2000, XP, 2003, various Linux distributions
Say you're developing an application under Windows XP. If you need to test your
program on other versions of Windows, virtual machine (VM) software allows you to run Windows 98 without
forcing you to reboot your computer.
Decent VM software also allows some exchange between the host machine (the real one)
and the virtual one. If you encounter a bug, you can switch back to the host, correct
the code, and send an updated executable back for further testing.
On especially beefy hardware, VMs can be used to simulate complicated network operations.
With the right VM software, you can setup a virtual network to practice domain management
and software rollouts without putting production equipment on the line.
More robust pieces of software are available for
virtualizing servers. VMware has two products in this category (VMware
GSX Server 3 and
ESX Server 2).
Microsoft is getting ready to release
Virtual Server 2005. The feature sets of both companies' offerings are more
specialized for integration with server OSes. They also include strong scripting
tools for automating VMs.
You can also use VM software to sample alternative operating systems without committing
a dedicated partition to the job. Since VMs can use virtual partitions (a partition that
lives inside a file of dynamic or fixed size), you don't have to worry about reclaiming
any hard drive space lost to experimentation. Also, since VM software tends to emulate
common hardware, you're less likely to encounter driver issues with an esoteric OS.
Anyone hoping to use VM software to play favorite DOS games will probably be disappointed.
Tests with a couple random games
(Terra Nova: Strike Force Centauri
and Gabriel Knight 2) didn't get
far beyond their installation. Simpler games ran reasonably, but people solely interested in
gaming should try something like DOSBox first.
Let's get down to business...
If you're interested in running applications, Virtual PC 2004 (Microsoft; US$129) and VMware Workstation 4.5 (VMware;
US$189 to download, US$199 with packaging) are both competitive
tools for the job. In fact, they're both so refined that your ultimate purchase decision
will be affected more by your own needs than by any inherent problems with the programs.
While general performance is an important consideration (and easily quantified), your
eventual uses for the software are more important.
Are you planning on rigorous compatibility testing or just sampling other possible
configurations? Do you want pure performance or just an environment for containing
potential accidents? Do you want to run lots of different OSes or will you stay within
the Windows family? Will you need to use special hardware within your VM or is a generic
setup acceptable?
Both pieces of software come with special drivers optimized for the VM's
"hardware" (VM Additions for Virtual PC and VM Tools for VMware). Besides performance
boosts, they add extra features that allow you to blur the line a little between VM and host.
In a graphical OS like Windows, a new mouse driver enables pointer integration. Instead of
letting the VM lock your mouse input, your cursor can glide freely between real computer and
virtual.
File sharing lets you exchange information with the host computer. Shares usually appear
to the virtual machine as network shares. Of course, as your VM is a fully-functioning computer,
it can also access any real network shares. Both products also enable drag-and-drop support and
clipboard sharing between virtual machines.
An important thing to remember before choosing a virtual machine over a dual-boot setup is
that you'll need lots of RAM. More RAM than you ever conceived of needing before. While you'll
probably have enough CPU cycles to spare, you need enough RAM for both operating
systems to run comfortably.
As long as you have double your comfortable minimum, you should be fine.
Also worth noting is that installations of Windows XP will require their own product keys,
regardless of whether your host computer is also running it. Since XP will see whatever hardware
your VM portends to have, it will assume that it is a new computer in need of new activation.