Windows IT professionals have recently discovered the benefits of virtual machine (VM) software, a technology that the mainframe world has used for almost two decades. Today's PCs have the processing power required to run VM software, which lets you configure one computer to run multiple OSs.

Companies can use VM software to adopt new OSs (e.g., Windows XP) while continuing to run vital legacy applications that rely on earlier OSs (e.g., DOS, Windows 9x) on the same hardware. Another use for VM software is to create test deployment environments. In the past, creating a test environment might have required IT to dedicate a small fleet of PCs on an isolated LAN for application testing. That LAN might use a couple of test servers for domain controllers (DCs) and additional systems for each OS used in the organization. VM software lets you consolidate most of your testing systems onto one or two physical systems that run guest VMs for each test platform.

VM software is also useful for IT support departments. IT support staff often must recreate customer deployment scenarios to solve problems. VM software makes it much easier to quickly reproduce a given customer scenario. Furthermore, you can set up a VM product to automatically discard your unique configuration changes when you're finished with a particular deployment scenario, letting you resume customer support from a clean slate. This feature also makes VM software useful for setting up training scenarios in which you always want the system to start from a predefined state.

VMware and Microsoft offer desktop VM products for Windows. VMware Workstation 4 and Microsoft Virtual PC 2004 are similar in overall functionality but have some important differences. To evaluate their features and see which product might work best for your environment, you can use this review and the features comparison in Table 1.

Product Evaluation Criteria
An important criterion for evaluating VM products is the products' support for host and guest OSs. The host OS is the OS platform on which you install the VM software. The guest OSs are the OSs that the products support as VMs. Here, more is better: The more host and guest OSs the VM product supports, the more flexibility you have for installing the VM software and setting up test scenarios. Figure 1 shows the relationship between the VM software and host and guest OSs.

Another key evaluation factor is how the VM software addresses the physical hardware available on the host system and provides virtual hardware for the guest VMs. Access to RAM is a vital factor and is usually the gating factor for supporting a number of active VMs. The more RAM the VM software can address, the more VMs can be active at a given time. Another important host hardware characteristic is the ability to access real disk partitions and share disk partitions between VMs. The ability to access real disk partitions can provide a performance advantage over pure virtual disks and can let a VM access multiboot partitions. Additionally, the ability to access real disk partitions can let you make your VMs portable by building them on DVD media.

Some key considerations for the guest OS are the product's support for enhanced graphics and sound in the guest OS and support for CD-ROM and USB devices. Other useful features include support for changing VM settings such as name, maximum RAM available to the VM, and maximum hard disk space. Another important factor is the ability to move VMs between host platforms, which can make your testing environment more flexible and help you deploy VMs more easily.

VMware Workstation 4
VMware Workstation 4, which VMware released in April 2003, actually is the fourth release of the company's VMware Workstation product (bucking the trend of fictitious version numbers). The first VMware Workstation version, released in 1999, was the first x86 processor-based VM product. VMware, a subsidiary of EMC, also makes two server-based VM products: VMware GSX Server and VMware ESX Server. For more information about the VMware server products, see the sidebar "VM Server Products."

VMware Workstation 4 provides flexible support for host and guest OSs. Host support is undoubtedly the biggest difference between VMware Workstation and Virtual PC. Virtual PC officially supports only two Microsoft OSs; VMware Workstation supports many OSs and can run most x86 OSs. Among the OSs VMware Workstation supports are Windows Server 2003 (Standard, Enterprise, and Web editions); Windows XP Professional and Home Editions with Service Pack 1 (SP1); Windows 2000 Advanced Server and Professional; Windows NT Server 4.0 with SP6a, and NT Workstation 4.0. VMware Workstation also extends beyond Microsoft OSs, supporting several popular Linux distributions, including MandrakeSoft's Mandrake Linux 8.2 (and later); Red Hat Linux Advanced Server 2.1 (and later) and Red Hat Linux 7.0 (and later); and SuSE Linux Enterprise Server 7 (and later) and SuSE Linux 7.3 (and later). The Windows and Linux hosts are on the same VMware Workstation installation disk.

I installed and tested VMware Workstation on a 1.8GHz system with 1GB of RAM. The product's installation was easy and uneventful and took about 1 minute. After VMware Workstation is installed, you manage it by using the VMware Workstation window, which Figure 2 shows. I found the VMware Workstation window to be an intuitive, useful management console, with only one minor inconvenience: I couldn't resize the window. However, the window automatically resized when I changed the guest OS's resolution.

VMware Workstation provides an easy-to-use New Virtual Machine Wizard that steps you through creating VMs. When you create a VM, you set up its available RAM, virtual disk type, maximum disk size, and virtual networking options. VMware Workstation supports two types of virtual hard disks: virtual and raw. A virtual disk contains files that are typically stored on the host's hard disk. The host OS sees and accesses a virtual disk as a regular file. On the guest OS, all the VM information is stored on the virtual disk. By default, virtual disk files are sized only large enough to hold the guest OS but grow as new information is added until they reach their predefined maximum size. You can increase the performance of the guest OS by choosing to allocate all the virtual disk space when the VM is created. You can easily move virtual disks between different systems running VMware Workstation.

A raw disk is mapped to a physical drive on the host and directly accesses a local disk partition. Raw disks are useful in multiboot systems when you want to let the alternative OSs run concurrently with the host OS. You can set up virtual disks as either persistent (the OS saves all changes) or nonpersistent (the OS discards all changes). In addition, you can set up the VM to prompt you to save any virtual disk changes when the guest OS is powered off.

VMware Workstation's VMs support four types of virtual networking: None, Host-Only, Bridged, and Network Address Translation (NAT). The None option essentially means you can disable networking. Host-Only restricts the networking to only the VMs and the host OS with no outside connections, although you can configure outside connections by using either Internet Connection Sharing (ICS) or RRAS. Bridged networking lets VMware Workstation act as a virtual switch connecting the VMs to the outside network. The NAT option lets the VMs use the host IP address to connect to the outside network. VMware Workstation provides its own DHCP server for Host-Only and NAT configurations.

After you've created a VM, you can use the Virtual Machine Control Panel, which Figure 3 shows, to edit the VM's properties. To start the VM, you use the VMware Workstation window's Power On option (not shown in Figure 2). If no guest OS is installed, VMware Workstation prompts you to insert a boot CD-ROM (the CD-ROM with the OS you want to install). You can either install the guest OS from the virtual CD-ROM drive or mount an International Organization for Standardization (ISO) CD-ROM image file and install the OS from the CD-ROM image. After you've installed the guest OS, powering on is just like booting the OS.

After you install the guest OS, you can opt to install the VMware Tools component in the guest OS. Although the guest OS can run without VMware Tools, the tools offer some important enhancements to the basic VMware Workstation VM, such as an enhanced SVGA driver to improve video performance. (VMwareTools is required if you want the VM to support SVGA graphics.) VMware Tools provides a control panel that lets you synchronize the time between the VM and host and resize the virtual disk. VMware Tools also lets you copy information between VMs.

In my tests, the VMware Workstation VMs performed well compared with running a physical system with the same OS. Operationally, the only significant difference between running a VM and a physical system is that in a VM, the Ctrl+Alt+Ins key combination replaces the Ctrl+Alt+Del key combination. I accessed the CD-ROM drive seamlessly in the VMs and found that the VMs fully supported USB devices, such as flash memory keys.

After you create a VM, you can easily move it. VMware Workstation defines a VM by three basic files and extensions. The .vmdk file contains the virtual hard disk image, the .vmx file stores the VM configuration information, and the .nvram file stores information about the state of the VM's BIOS. To move a VM, simply copy the .vmdk and .vmx files to the new host. You can even copy VM files between Windows and Linux hosts.

The main limitation of VMware Workstation is that only 1GB of RAM is available to all VMs, which limits the number of VMs that can run simultaneously. XP and other platforms support as much as 4GB of RAM. VMware plans to address the memory limitation in the next release of VMware Workstation. For more information about the upcoming release of VMware Workstation, see the sidebar "VMware Workstation 4.5."

One significant advantage of VMware Workstation over Virtual PC is its support for virtual SCSI, which lets you use a VM to set up and test Microsoft Windows clusters. VMware Workstation's virtual SCSI support lets you set up a quorum resource drive that VMs can share. (Actually, VMware Workstation doesn't officially support virtual SCSI, but you can use virtual SCSI devices with the product. For more information about using virtual SCSI with VMware Workstation, see "A VMware Clustering Recipe," February 2003, InstantDoc ID 37599.)

The VMware Workstation documentation is outstanding. The 326-page user manual summarizes the VMware Workstation features and guides you through the product's setup and common usage scenarios. The online Help is thorough and equally impressive. VMware's Web site ( and the public newsgroups that VMware runs at vmware.for-windowsnt.general also provide much useful information about setting up and running VMware Workstation.

VMware Workstation 4
VMware * 650-475-5000 or 877-486-9273
PRICE: Price: $189 for electronically distributed version; $199 for packaged version; free downloadable 30-day evaluation version available
PROS: Wide platform support
Full support for Linux, FreeBSD, and Novell NetWare
Excellent documentation
CONS: Only 1GB of addressable RAM

Microsoft Virtual PC 2004
Microsoft acquired the Virtual PC product line from Connectix in February 2003. Microsoft split Connectix's basic Virtual PC technology into two products: Virtual PC 2004 and Virtual Server 2004. (For more information about Virtual Server 2004, see the sidebar "VM Server Products.") Microsoft markets Virtual PC primarily as a solution that lets XP run legacy applications.

Unlike VMware Workstation, Virtual PC doesn't accommodate a wide range of host OSs—the product supports only XP Pro and Win2K Pro as host OSs. However, although Windows 2003 and Win2K Server don't support Virtual PC, this lack of support doesn't prevent you from installing the software on a Windows server system. When you install Virtual PC on a Windows server system, the product displays a brief warning but lets you complete the installation. I installed Virtual PC on a Win2K Server system and found that the product ran without a problem.

Similarly, although Virtual PC officially supports only Microsoft desktop products and OS/2 as guest OSs, the product can actually run a much wider variety of guest OSs. Most OSs that run on the x86 platform will run as guest OSs under Virtual PC—I successfully installed Red Hat Linux and Win2K Server as guest OSs. However, because Microsoft doesn't support running Windows server systems and Linux OSs under Virtual PC, I don't recommend using Virtual PC for crucial production applications running under those OSs.

Installing Virtual PC was simple and took only a couple of minutes. As with VMware Workstation, I tested Virtual PC on a 1.8GHz system with 1GB of RAM. A nice touch in the installation program is that it asks you whether you want to install the program for all users or just one user. This option is useful for a shared system when you want to make Virtual PC available only to the administrator of the computer that runs it. After the software is installed, you can use the Virtual PC Console, which Figure 4 shows, to create and run VMs. I found the VMware Workstation window a bit easier to use than the Virtual PC Console.

In Virtual PC, you use the New Virtual Machine Wizard to create new VMs. Virtual PC's New Virtual Machine Wizard is similar to VMware Workstation's New Virtual Machine Wizard. Although the wizard screens in the two products differ slightly, both ask you to specify the same information: the guest OS you want to use, disk type, and type of network support.

Virtual PC supports three types of virtual disks: dynamic, fixed, and linked. Dynamic disks are the default type. The host OS sees dynamic disks as regular files, so you can move them between different systems running Virtual PC as you typically move files. Dynamic disks are initially sized to accommodate the size of the installed guest OS and automatically grow to their predefined limit as the guest OS requires additional disk storage space. Fixed disks are similar to dynamic disks, except they're always a predefined size. You create fixed disks with the Virtual Disk Wizard, which you launch from the Virtual PC Console. Linked disks in Virtual PC are the equivalent of raw disks in VMware Workstation. The linked disks feature is handy in multiboot environments because it lets you easily link a VM to a boot partition. Using this feature, you can boot the host OS, then use Virtual PC to start a VM linked to the physical partition, letting both the host and multiboot guest OSs run concurrently.

Virtual PC supports four types of network connections for VMs: Not connected, Local only, Virtual networking, and Shared networking (NAT). You specify Virtual PC's network configuration by clicking the VM's Settings option, then clicking Networking properties. Selecting Not connected disables networking. The Local only option provides networking services to only the VMs and the host, with no external network connections unless you set up ICS or RRAS. Virtual networking lets the VM connect to the outside network. Shared networking (NAT) lets VMs connect to the outside network by using the host OS's IP address. When you specify Virtual networking, Virtual PC assigns a private IP address to each VM. After you've created a VM, you can edit its properties in the Settings dialog box, as Figure 5 shows.

You use the Virtual PC Console's Start button to start VMs. (The Start button appears in the Console when a VM that isn't running is selected.) If no guest OS is installed, Virtual PC prompts you to insert a boot CD-ROM. Oddly, you must manually select the menu option to use the physical CD-ROM before Virtual PC can read from the CD-ROM drive. Like VMware Workstation, Virtual PC has the option of mounting ISO CD-ROM image files and even installing the guest OS from the ISO image. In addition to installing the guest OS, you must install the VM Additions component for each guest OS. VM Additions provides enhanced graphic support, support for drag-and-drop moving and copying of files between VMs, folder sharing, and time synchronization with the host.

In my tests, the Virtual PC VMs performed well compared with running a physical system with the same OS. The main difference between running a VM and a physical system is that in the VM, the right-Alt+Del key combination replaces the Ctrl+Alt+Del key combination. With VM Additions installed, Virtual PC supports high-resolution SVGA displays and provides full SoundBlaster and CD-ROM access. However, Virtual PC doesn't support USB devices.

Moving Virtual PC VMs between hosts is easy. Virtual PC stores its virtual hard disk images in a .vhd file and its virtual machine configuration as XML in a .vms file. To move the VM, you simply copy these files to the new host and select the existing VM through the Virtual PC Console. Virtual PC lets you easily move and share virtual disks between VMs. In addition, Virtual PC's differencing disks let multiple users and multiple VMs use the same virtual hard disk. Virtual PC stores each user's changes in separate differencing files, letting multiple users share a base virtual disk and keep their own unique changes. VMware Workstation has a similar capability, but you must manually edit the virtual disk configuration files to enable it. Virtual PC doesn't support SCSI configurations; thus, you can't use it for setting up Windows clusters.

An important technical advantage of Virtual PC is its ability to address up to 4GB of RAM, which gives it significantly more headroom to run multiple VMs simultaneously. VMware Workstation is limited to 1GB of RAM for all VMs.

Virtual PC came with a thin 28-page Getting Started guide that wasn't helpful to me. I found the product's task-based help decidedly inferior to the much more detailed help offered in VMware Workstation. However, Microsoft provides additional information about Virtual PC at Virtual PC comes with standard Microsoft support. You can also obtain answers to technical questions about Virtual PC from the Microsoft Virtual PC public newsgroup at microsoft.public.virtualpc.

Microsoft Virtual PC 2004
Microsoft * 425-882-8080 or 800-426-9400
PRICE: $129; free downloadable 45-day evaluation version available
PROS: Good value
4GB of maximum addressable RAM
CONS: No support for shared SCSI or USB devices
Limited platform support
No complex Windows services emulations yet available

Making a Choice
I found VMware Workstation and Virtual PC to be of excellent quality. I had no real problems with either product. VMware Workstation is the more flexible of the two offerings. VMware officially supports a wider range of host and guest OSs than Virtual PC does. VMware Workstation has more advanced network functionality than Virtual PC does and unofficially supports virtual SCSI for setting up test clusters. Virtual PC doesn't support virtual SCSI and doesn't officially support the Windows server OSs required for setting up a cluster. If you want to set up test clusters, run Linux distributions, or run Windows server products, VMware Workstation is the clear choice.

Virtual PC is the better value of the two products. Priced $60 less than VMware Workstation, Virtual PC offers most of the same capabilities for Windows desktop OSs as VMware Workstation. Although Virtual PC doesn't support Linux hosts, it lets you run most x86 OSs as guests. In addition, Virtual PC's ability to address more RAM lets it run more VMs at the same time. If you want to run only Windows desktop hosts or primarily Windows guests, Virtual PC is the better choice.