If you need more
control than Virtual PC offers, you should take a look at VMware.
Not only does VMware offer official support for everything from Windows 3.1 to FreeBSD, it also
grants you more control over your VMs. You can manage an entire virtual network, emulate either IDE
or SCSI hard disks, and take advantage of USB hardware that is connected to the host machine.
A Linux version of the host software is even available.
VMware's VMs are also upgradeable. Just as you can add hardware to a real computer, you can alter
the setup of your VM. You can add new disk drives, Ethernet adapters, serial ports, parallel ports,
and SCSI devices. If you always need access to a CD full of important data, you can make a new
virtual drive that's linked to an ISO.
You can even make up virtual NICs for your own virtual network. Virtual networking options are
so rich that a separate utility is provided for managing the virtual adapters. VMware's only major
fault is that it imposes a 4GB cap on the amount of memory you can allocate across all active
virtual machines.
The main interface consists of a single window. Each VM takes a tab rather than an independent
window. If you prefer a non-tabbed interface, that's also an option. When a VM isn't running a
summary page displaying hardware information and user notes is shown. While running, a status bar
displays disk and network activity.
The VMware main window
VMware running XP
If you're going to be spending most of your VM time with a non-Microsoft OS, VMware is really
the only way to go. It includes optimizations for Red Hat, SUSE, Mandrake, and Turbolinux. FreeBSD
and NetWare are also supported. If you want to run Windows, it has you covered;
experimental support for Longhorn is even included.
SMP users will also prefer VMWare because it runs each instance of a VM in its own process, making it highly customizable in terms of CPU offloading and the like. If you're likely to run more than one VM at a time, this will prove to be a performance enhancement you'll want.
VM Tools are available for all of these OSes except DOS. Heavy DOS users (anyone still out there?)
might prefer the extra features of Virtual PC. Virtual PC has another edge with its dynamic display
resizing. Since VMs usually reside in windows, being able to treat them as fully repositionable and
resizable views lets you work with more comfort. It's one of those subtle features like
the mouse wheel, where you don't know how useful it is until you try it.
One of the places where VMware really shines is its documentation. When I first set up Linux,
I had issues getting my network to pick up. The error I got said that it couldn't link with my
card and to check the cable. Since there isn't a cable to check on a computer that doesn't really
exist, I thought I was up the creek.
I checked the help on the chance my problem would be documented; lo and behold it was. Part of
the help is a Guest OS Install Guide which has detailed instructions for setting up all supported OSes,
along with common problems. I made the prescribed amendments to a couple config files and had everything
working in under a minute.
VMware's design makes it very clear what tasks you can accomplish with the program. The layout feels
complete without being overstuffed; the help system makes it easy to find answers without seeming like
its missing anything.
One of the big faults of Virtual PC is its overly streamlined design. Even though the program doesn't
have very many settings, it doesn't comfortably communicate how easy it is to use. With a program so
powerful that it can pretend to be another computer, you'd expect that there would be options up the
wazoo for geeks to tweak to perfection.
However, there aren't. Virtual PC's developers should hardly be faulted for this. Few programs
"just work" without some prerequisite prodding from the user. Situations like this can cause
the geek equivalent of housewife ennui to set in: "Have I done everything I could to wring every ounce
of performance out of this program? Is there some clever feature hiding somewhere that's escaped my notice?
Something left out of the documentation perhaps?"