Use Multiple OSs on One PC

by Don Kiely

Quick Facts
VMware Workstation
VMware
Web:
Phone: ;

Price: $299 (electronic), $329 (packaged)
Quick Facts: Robust virtual machine software for many operating systems.
Pros: Flawless device sharing between VMs, friendly UI, saves hardware costs.
Cons: Requires some hefty hardware, but within range of typical development machines.

VMware Workstation is virtual machine (VM) software that lets you run multiple operating system versions simultaneously, in different windows, on a single computer—one as the host and the others as guests. This product can change the way you develop software and help you build much more robust applications. You can probably run any Intel 386-compatible OS as a guest OS, but the product explicitly supports VMs with all versions of Windows, DOS 6.0, four Linux distributions, and FreeBSD. The list of supported host OSs is a bit more restrictive: Windows NT 4.0 and all later versions, and the same four Linux distributions.

You can install any and all of these OSs on a machine with enough disk space to hold 1 to 5 GB for each VM you build. Imagine what this means for supporting your products on various OSs. You can install every Microsoft OS ever known, along with your product and any other required software, such as a database engine. Then, you can run your software on any version of Windows within the time it takes to boot the VM. You can even start up two or three versions and run them all at once. The product is also useful for setting up training rooms, sales presentations involving multiple OSs, and help desks that must support a variety of platforms.

Each OS is contained within its own VM and is protected completely from the other guest OSs and the host OS, even though they're all on a single piece of hardware. You don't need to repartition your hard drive or make any changes to the host OS other than installing VMware. Each VM has access to its own set of devices. This is where the real magic in VMware comes in. I can only imagine the hurdles VMware's engineers had to overcome to get multiple VMs to share CD drives, network adaptors, Universal Serial Bus (USB) controllers, and other hardware resources. They've done an amazing job, and I've experienced no conflicts whatsoever in my almost daily use of this product.

There are some limits to the number of devices a VM can use, such as four COM ports and two USB ports. However, I haven't bumped up against the limits yet. They all either match or exceed the physical devices in my development machine.

Select Your OS.

VMware provides plenty of configuration options to let you get each VM operating exactly the way you want. For example, when you create a new VM, you can configure networking to use bridged networking, network address translation (NAT), or host-only networking. You can use the Configuration Editor to fine-tune the setup, simplify the UI, and set special-purpose configuration options that let you restrict a user's ability to reconfigure VMs.

The VM display is limited to VGA graphics when you first install a guest OS. If you install the VMware Tools in a VM, it'll support up to 32-bit displays and high-display resolution with much better graphics performance. Other features in the Tools include time synchronization between host and guest, automatic grab and release of the mouse cursor, copying and pasting between the host and the guest or from one VM to another, and improved networking performance.

A feature that VMware calls "migrating a VM" lets you move an installed VM to another PC or to another platform, or rebuild a clean install quickly. For example, suppose one of your VMs is Windows 2000 Pro, with the beta of VS.NET 2003, SQL Server 2000, and a few other tools. You can install beta software, mess up the Registry, do whatever you need to do, then blow away the old VM quickly and install a new copy of Windows 2000 with all your tools ready to go. You're back up and running within minutes—faster and more easily than you would be even with Norton Ghost.

The company has obviously thought through a user's interaction with the host OS and VMs that are running. For example, the host OS always handles Ctrl-Alt-Del, and you wouldn't want that to change. You can use Ctrl-Alt-Insert instead within a VM. Another nice UI feature is that once you click inside the VM, all your keystrokes and mouse clicks go to that VM, not to the host. Alt-Tab moves between windows in the VM, until you type Ctrl-Alt to free the keyboard and mouse back to the host OS. Navigation is quite easy.

Of course, all this magic doesn't come cheap. You must have a pretty hefty machine to run VMware. A current development machine will probably do nicely. I found VMware a bit sluggish with 256 MB of physical memory, but still quite usable. Upgrading to 512 MB made it hum. Each VM consumes disk space as well: Windows 2000 Pro with my usual development tools installed takes up 2.5 GB, and a clean install of Windows Server 2003 Standard (RC1) uses 1.2 GB. You'll also want a speedy processor, but my slightly aging 1 GHz Pentium III Xeon handles the load just fine.

VMware also makes a couple of server-based products that can extend some of the benefits of VMware to the enterprise. VMware GSX Server simplifies infrastructure by partitioning and isolating servers in secure and transportable VMs, transforming physical computers into a pool of VMs. VMware ESX Server goes further, transforming physical systems into a pool of logical computing resources.

I've never been a fan of setting up systems to dual boot—it never seemed like the hassle was worth it. You can go well beyond simple dual booting with VMware and run your OSs simultaneously. VMware deserves to become an indispensable part of your development environment.


About the Author
Don Kiely is a senior technology consultant for Information Insights in Fairbanks, Alaska. When he isn't writing software, he's writing about it, speaking about it at conferences, and training developers in it. Reach him at .