Virtual PC was originally developed for Mac OS by Connectix (the Mac version is
still available which
emulates rather than virtualizes an x86 computer). Microsoft bought the software from them, spruced
it up, and has repackaged it as Microsoft Virtual PC 2004.
Since it is a Microsoft product, the most exotic OS it officially supports is OS/2. Microsoft
has stated that they are not opposed to their software being using with other
operating systems, however they're
considered to be "third-party products." If you have trouble getting someone else's OS to run with
Virtual PC, they will direct you to the operating system developer for support. This is not to say other
operating systems
won't run at all. There is significant documentation
available to demonstrate that getting unsupported operating systems to run isn't
that big a deal.
As this wouldn't be a proper Ars review without a little messing around, I had to see if I could
at least get Linux working. I tried both Fedora Core 2 and Red Hat 9. Fedora installed easily, but
caused Virtual PC to freeze when it tried to reboot. I was eventually able to kill the process, but
it took a lot of coercion. The OS would boot, but all commands resulted in segfaulting.
Red Hat 9 froze in the same fashion after installation; this time I had to reboot my computer
to actually get rid of the stuck process. Afterwards, however, I had a functional Linux installation.
I only tested GNOME, but presumably other configurations of X Windows also work. Unfortunately, since
Linux isn't officially supported, you can't enable pointer integration or file sharing.
The biggest draw to Virtual PC is its ease of use. A wizard guides you through setting up your
virtual machines. The options aren't very detailed: you specify the OS you intend to use (other
is an option for the more adventurous), the amount of memory to allocate, and the location for the
virtual hard drive.
Most flexibility issues seem to be there to make the program simpler to use. As a result,
getting from setting up Virtual PC to a working OS installation is painless. Since there are
so few options to act as stumbling blocks, it's very easy to get your VM working.
A consequence of this ease of use is fairly limited customizability through
the GUI. About the most fine-tuning
you can do is changing the amount of memory to allocate. You can only use three hard drives.
You can't add optical drives, even if you just want to use ISOs. These limitations aren't
inconveniences for everyone, but they should be noted if they'll cause problems in your working
environment.
However, it is possible to further tweak VPC by editing the .vmc file
installed (by default) in \My Documents\My Virtual Machines. The .vmc file is
actually an XML preference file for Virtual PC. Open it up in your favorite text
editor and you can do things like edit the MAC address of your network adapter
and make other tweaks not possible via the program itself.
Despite the fixed hardware, what you have to work with isn't that limited. Virtual PC
supports as much memory as you can throw at it, three hard drives, an optical drive, a floppy
drive, serial and parallel ports, four network adapters, and sound (Sound Blaster-compatible).
Network adapters can be bridged, only connected to the host, or setup to share the host's connection
with NAT. You can connect a
named pipe
or a text file on the host to either of the two possible serial ports if you want a little more
control. An S3 Trio64 is the emulated video card. SCSI support is limited:
Virtual PC can use SCSI hard drives, but it cannot pass through other devices.
Thus, while a SCSI hard drive will show up to the VM as an IDE drive, you will
not be able to connect, say, a SCSI tape drive to VPC.
The main interface for Virtual PC is its console window. It contains a listing of the virtual
machines you're currently using (though you can store virtual machines on your computer and leave
them unlisted). When VM is running, it shows an active thumbnail of its display.
Console with inactive VM
Console with active VM
Each virtual machine receives its own window. A status bar displays hard drive, CD, and network
access. You can pause and hibernate VMs and resume activity later. Virtual PC also has a feature
called undo disks. They store changes made to your virtual HD in separate files. If something
catastrophic happens, you can revert to the disk's last saved state; otherwise you can commit
the changes.
VM Additions support is very good. Drivers are available for all flavors of Windows 9x, NT 4.0
SP6, 2000, XP, OS/2 Warp 4, and even DOS. I didn't encounter any problems with Windows 2000 or XP.
The most notable features added are file sharing, pointer integration, and dynamic display resizing.
Resizing the VM window or switching to fullscreen mode automatically adjusts the resolution of the
VM to fill the new space. Very helpful.
If you decide to use a VM to play DOS games, Virtual PC has a number of very desirable features.
Sound works instantly. No special setup was needed for sound in Virtual PC; all games tested autodetected
it without a hitch. File sharing also makes getting files into DOS much easier.
While some users may find fault with the fixed hardware support and limited OS compatibility, Virtual
PC is an extremely-polished program that should meet most peoples' needs.