One of the most frequent questions I'm asked about the SuperSite for Windows is, "how did you take those screenshots?" The screenshots in question are generally the ones that capture a booting PC or installing OS, when the standard "Print Screen"-type screenshot taking techniques won't work. The answer, as always, is Virtual PC. I've been using Virtual PC for several years now, and have been a Connectix customer since at least 2000. Now that Virtual PC--and its server-side sibling, Virtual Server 2005--has been purchased by Microsoft, I've moved on to the Microsoft version, of course, though I actually tried to avoid it for a while (see below). And Virtual PC 2004 is the first completely new version of the product to ship since the Microsoft takeover. Let's take a look.

What is Virtual PC?

Virtual PC is a software solution that provides a virtual machine environment in which other operating systems, with their own applications and services, can run as separate entities from the host (hardware-based) environment. To the operating system and applications running in a virtual machine, the virtual machine appears to be a real PC, with its own resources and attributes, that is completely separate from the host machine.

Though virtual machines can never rival the performance of real PCs for interactive use--they're useless for action-oriented games and movie playback, for example--they are perfect for many uses. For example, virtual machines are often used to test software in different environments, or test Web sites and Web applications with different browser versions. Sometimes businesses rollout a new version of Window but find that it is incompatible with some legacy applications; in such a case, a virtual machine environment running an older version of Windows and those legacy apps is just the trick (and in such a case, the user would be less apt to notice any performance issue since older OSes and application tend to need fewer resources anyway).

History of Virtual PC

The PC-based market for machine virtualization was actually started by VMWare in 1999 when that company released the first version of VMWare Workstation, a Linux-based product that emulated an x86-based PC in software. This solution gave Linux users the ability to boot into a dedicated, software-based Windows environment so that they could access the many Windows applications that were unavailable on Linux. Over time, VMWare ported its Workstation product to Windows, further enhancing its usefulness.

However, a small developer named Connectix had started working on an x86 virtual machine solution, this time for the Mac, earlier than VMWare, and it released its first Mac-based product in 1997. Dubbed Virtual PC, Connectix's solution was designed to accomplish some of the same goals as VMWare Workstation, but do so on a non-Intel platform, which made it somewhat unique. Like VMWare, however, Virtual PC was good for a number of software testing and desktop migration uses. And like VMWare, Virtual PC was ported to the PC, this time in 2001.

Virtual PC has always differentiated itself from VMWare in various ways. Virtual PC was Mac-based at first, and then added a Windows version, while VMWare targeted Linux and Windows. Connectix Virtual PC was much cheaper than VMWare, and that's true even today, though VMWare has closed the gap somewhat. Virtual PC used to perform better than VMWare, but that's decidedly not the case today. And VMWare still offers some features that Virtual PC lacks. For example, VMWare supports a much wider range of USB devices than does Virtual PC.

I latched onto Virtual PC for performance and compatibility reasons (I run Macs too, and the virtual machine environments I create on Windows run fine on the Mac, and vice versa). Today, those reasons are no longer as important as they once were, but I've stuck by Virtual PC simply because I have so many virtual machine environments. I currently a large number of Virtual PC-based virtual machines for testing purposes (Figure), and it would be problematic or even impossible to re-create these on VMWare. That said, I've also started using VMWare for specific environments, as I'll explain below.

In any event, Microsoft purchased Connectix's virtual machine assets in February 2003. Those assets amounted to virtually (ahem) everything the company made, including Virtual PC itself and the fledgling Virtual Server product, which is only just now coming to market. Microsoft quickly rebranded the Connectix Virtual PC 6 product with Microsoft logos, but it wasn't until Virtual PC 7-- renamed to Virtual PC 2004 to conform to Microsoft's silly naming scheme--shipped that we saw the effects that Microsoft would have on the product. Here's what happened.

Virtual PC 2004

Like previous versions of the product, Virtual PC 2004 starts with a very simple console window from which you can manage all of your virtual machine environments (Figure). The console displays any virtual machines (VMs) you've already set up, and provides access to common functions, like individual VM settings, Virtual PC options (Figure), and the New Virtual Machine Wizard and Virtual Disk Wizard.

The New Virtual Machine Wizard (Figure) can be used to create a new virtual machine, naturally, either by using a pre-existing virtual disk, or by creating a new one from scratch. In the latter case, you will install a new OS from scratch, using the original setup CD or DVD, or an ISO image, which can be mounted like a physical disk in the environment.

After determining the name and location of the virtual machine, you're prompted to select the operating system that the VM will contain. Virtual PC 2004 tries to be intelligent about the selection here--if you choose a name like "Windows Me" for your virtual machine, it will select "Windows Millennium Edition" by default--but it's here that we also notice some key options from the past are missing. Unlike Connectix Virtual PC 6.x and earlier, Virtual PC 2004 no longer supports Linux as an operating system type (Figure), but instead presents a list of Microsoft-only OSes. You can still choose "Other" to install Linux--and it does work with most distributions I've tried (though not with Fedora Core 2 or 3)--but doing so comes with some limitations. The biggest of these limitations is that Linux (and any other OSes that fall under the "Other" category) do not support Microsoft's crucial Virtual Machine Additions, which we'll describe a bit later. In short, Linux support is almost non-existent in Virtual PC 2004, which makes this product suddenly a lot less compelling to me.

In the next stage of the wizard, you select the amount of RAM to use for the machine. Two obvious points arise here. First, you will need heaping amounts of RAM and a fast, modern processor in your PC to get anything approaching decent performance in a VM under Virtual PC. Second, you're going to want to provide each VM with as much as RAM as possible. Curiously, Virtual PC's suggest RAM amounts are ludicrous, so I always end up bumping them up dramatically (Figure).

After that, you determine whether to use an existing virtual hard disk or to create a new virtual hard disk. This is another area where VMWare is more full-featured: Though Virtual PC's hard disks are indeed virtual and actually take up very little space, and only increase in size as information is added to them, you have no say over the fixed maximum size of the disk during creation; in VMWare, you can pick this figure and perform other advanced actions, like divide the virtual disk into separate 2 GB files. With Virtual PC, the size is 16 GB, like it or not. However, you can change that somewhat later on using the Virtual Disk Wizard, which we'll look at in a second.

Once you've created a virtual machine, it appears listed in the console and you can change settings, or start it up and get to installing an OS. The settings for an individual virtual machine (Figure) include such things as the RAM (which you can change later), the attached virtual hard disk(s), and whether sound is enabled, among many others.

When you actually go about installing an OS, you get to see how the virtual environment is set up, complete with a virtual BIOS (Figure), which is somewhat humorous to the uninitiated. You can choose to boot from a physical floppy, a physical CD, or select an ISO from your PC's file system about boot that way (you can later map ISO images as CDs once the OS is installed as well).

If you want to manually create virtual floppy or hard disks, you can use the Virtual Disk Wizard (Figure). This tool is also somewhat useful for editing existing virtual disks. From here, you can compact the virtual disk, but only if you've zeroed out the free space on the disk using a third party utility first, or convert the disk to a fixed-sized virtual disk (the default is dynamic).

In use, Virtual PC 2004 is noticeably slower performing than previous versions and slower than the latest version of VMWare Workstation. Microsoft tells me that the speed problem has to do with it implementing various Trustworthy Computing-related coding changes to the Virtual PC code base, and while I'm sure that's true and even worthwhile, it's also a bit odd, since I'd become used to performance increases in each release previously.

In the good news department, Virtual PC now supports up to 4 GB of RAM, making it more suitable for high-performance computers, and it's simple to move from Windows-based virtual environments to the host environment and back, using drag and drop or cut and paste. This latter feature arrives courtesy of the Virtual Machine Additions, which adds the ability to move the mouse seamlessly between the host and the VM (otherwise, you have to memorize a key combination to move the mouse out of the VM). You can also implement an Undo Disk feature on the fly, which lets you throw away any changes you've made during a session, perfect for testing environments. And finally, virtual disks created with Virtual PC are compatible with Virtual Server 2005, and Virtual PC for the Mac, which could sway many businesses.

What's missing in Virtual PC 2004?

Despite its years-long legacy, Virtual PC 2004 is a surprisingly immature product, and it comes up short in a few key areas when compared to VMWare Workstation. First is the aforementioned Linux support, which is basically non-existent in Virtual PC. Though I understand that Microsoft doesn't want to get caught in a situation where it's actually supporting Linux software, I'd rather see the customer support its customers than hold a grudge match against a competitor.

Second, the performance is perceptibly slower than with previous versions. I've already highlighted that above, but it bears repeating: VMWare and older Connectix versions of Virtual PC are faster.

The final nail in the coffin is Virtual PC's lackluster support for USB devices. Right now, Virtual PC only supports USB-based keyboards and mice, but not any other USB devices, as does VMWare. So if you want to use your USB flash disk in Virtual PC, forget it. Microsoft tells me they're working on it, but my guess is we won't see that support added until the next major revision.

Conclusions

At $129, Microsoft Virtual PC 2004 is significantly cheaper than the versions Connectix sold and cheaper than the $189 VMWare charges for Workstation 4.52. However, Virtual PC comes with a few significant limitations when compared to VMWare, and it's unclear now which is the better buy. I've been evaluating VMWare Workstation this year as well, and have begun rolling out Linux distributions in this environment rather than in Virtual PC. If that or Linux host compatibility is an issue, or if you think that you will want to access USB flash disk devices from a virtual machine, you might want to consider VMWare. Otherwise, Microsoft is, as usual, the low-cost solution, and one that is destined to improve mightily over the next few releases, especially for businesses that think they may need to rollout Virtual Server.

I use Virtual PC for two basic tasks, taking screenshots and testing Linux distributions. The software still excels for the first, but is woefully inadequate for the latter. So I've begun a slow but perhaps inevitable transition to VMWare Workstation as a result. Unless Microsoft reverses its anti-Linux trends, they might lose me--and, I suspect, many other Virtual PC customers--forever.