Create a virtual Windows system on your Linux machine—and vice versa

Borrowing a page from the mainframe world, VMware Workstation 2.0, with versions for Linux and for Windows NT and Windows 2000, lets you run one or more Virtual Machines (VMs) on any Win2K, NT, or Linux desktop. VMware Workstation provides hardware emulation that lets you run Windows programs on a Linux machine or vice versa.

This product isn't just a cool toy for geeks, though. Whether you're a developer testing a new build's cross-platform support, a Help desk technician trying to replicate a customer's problem, or a salesperson demonstrating your wares, you can benefit from VMware Workstation.

Installation and Configuration
I first installed VMware Workstation 2.0 for Linux on a dual-CPU Dell Precision WorkStation 610 running Red Hat Linux 6.1. (The VMware Workstation 2.0 for Windows NT and Windows 2000 version of the product runs on Windows machines.) After extracting the installation files from the tar archive file (the CD-ROM also includes a Red Hat Package Manager—RPM—formatted file), I ran the installation script, then ran a configuration script.

During setup, I chose a connectivity mode from VMware Workstation's Networking Setting options. The Host-only networking option, as its name implies, lets the virtual system access only the host; Bridged networking lets the virtual system connect to a LAN by sharing a NIC. As I did, you also can select Bridged and host-only networking to allow both modes.

Windows-based clients use only the Server Message Block (SMB) protocol to communicate with servers, so VMware Workstation 2.0 for Linux ships with its own Samba server (Samba lets Linux "speak" SMB). Because I was running Samba on my system before I installed VMware Workstation, I manually tweaked a few settings in my Samba configuration file instead of installing VMware Workstation's Samba server. This situation was one of the few in which the documentation made me fend for myself. The last step in the setup process was to create a VMware Workstation subdirectory and copy the license file to it.

I then installed VMware Workstation 2.0 for Windows NT and Windows 2000 on a Dell Precision WorkStation 410 with a 400MHz Pentium II processor and 256MB of RAM. This machine ran Win2K. Installing VMware Workstation under Win2K was slightly simpler than the Linux installation because I didn't need to run UNIX configuration files.

I wanted to configure the hard disk and CD-ROM drive as SCSI devices, but VMware Workstation doesn't support bootable SCSI CD-ROMs, so I left both drives configured as IDE devices. Otherwise, the Win2K installation was fairly smooth. (For more information about installing VMware Workstation for Windows, see John D. Ruley, Windows 2000 Pro, "Better than a Dual-Boot," January 2001.)

VMware Workstation for Linux
After completing the setup, I created my first VM. This process is completely wizard-driven and takes longer to explain than to perform.

After selecting the OS I wanted to install (the choices include Win2K, NT, and Windows 9x) and the VM directory in which to install it, I picked a disk type. The choices are New virtual disk, which uses a file on the host system, and Existing physical disk. I chose the virtual disk option and accepted the maximum supported size of 2GB. The wizard's next few screens let me configure the VM to use the host's CD-ROM and 3.5" disk drives and set the VM's network mode to Bridged and host-only.

All defaults worked fairly well except for the default RAM setting, which is only 64MB for Win2K and NT. This amount of RAM isn't quite enough for reasonable performance, so after configuring the VM, I used the Configuration Editor to manually change the VM's RAM to 128MB. Before I closed the Configuration Editor, I also set up COM1 to use the host's external modem, enabled the Sound Blaster-compatible sound card emulation, then saved the settings.

Next, I inserted my Win2K Professional CD-ROM, clicked the VM's Power On button, and watched, amazed, as a typical PhoenixBIOS boot sequence took place in the VMware Workstation window. After the boot was complete, I stepped through the standard Win2K setup process.

VMware Workstation emulates an AMD Ethernet network adapter, which the setup process readily found. I needed only to assign the emulated adapter an IP address for my local network segment.

Finally, I installed the VMware Tools suite, which provides optimized video drivers and Clipboard support between the guest and host OSs. I chose the Settings menu's VMware Tools Install option, then double-clicked the VMware Tools icon in the virtual A drive to start a standard InstallShield wizard.

After I finished with the wizard, I had a fully functional Win2K Pro desktop running in a Linux window, as Figure 1 shows. I could play music CDs, browse my local LAN segment, print to a networked printer, and do anything else that a client can typically do. I even used Win2K's DUN feature to connect to my local ISP.

Performance was respectable, but my workstation had dual 550MHz Xeon processors and 512MB of RAM, so I didn't expect the VM to be slow. I noticed an interesting side effect: Although each VM runs as a single-processor system, the host's underlying Linux OS spread the work across both CPUs. (As I confirmed later, a Win2K or NT host can do the same for a Linux VM.)

VMware Workstation for Windows
After getting my feet wet with VMware Workstation 2.0 for Linux, I tested VMware 2.0 for Windows NT and Windows 2000. I created several VMs: one for Win2K, one for Windows 98 Second Edition (Win98SE), and one for Red Hat Linux. (You might think it odd to run Win2K on top of Win2K, but doing so is useful for tasks such as testing different language versions or different service packs.)

Although installation of each guest OS went smoothly, the VMware Workstation documentation surprisingly makes no mention of how to let a Linux guest OS access the Windows host. (I used the Linux Smbmount command.) I noticed a severe performance drop with Win98SE, which took nearly 90 minutes to install. A VMware spokesman confirmed that, as I had thought, this tedious installation was due to the thunking that VMware's 32-bit code needs to do to support Win98SE's 16-bit legacy code.

VMware Workstation 2.0 for Windows NT and Windows 2000 lets you change the process priority from normal (the default) to idle or high for each VM independently or for all VMs and for normal operations, background operations, or both. I used BAPCo's SYSmark 2000 office productivity suite to look at the performance effect of different priorities on one VM on a quiet system. I found that the performance of Corel's CorelDRAW 9 Graphics Suite improved dramatically when I set the VM to a higher priority. Microsoft Excel 2000's performance actually decreased quite a bit when I boosted the VM's priority, and Netscape Communicator's performance stayed about the same, regardless of the VM's priority. The only conclusion I drew from my quick tests is that your mileage might vary.

Some Useful Features
VMware Workstation for Windows NT and Windows 2000 and VMware Workstation for Linux share some useful features that help make this solid program even more attractive. In addition to supporting Clipboard functions between guest OSs, the product supports bidirectional Clipboard functions between the guest and host OSs. A mouse click lets you run a VM in full-screen mode.

VMware Workstation's Suspend feature lets you quickly save the state of any VM to disk and reduces machine reactivation time to a few seconds from almost 1.5 minutes without the Suspend feature. You can use this feature in combination with VMware Workstation's Instant Restore feature to store many different VMs on disk while allowing for quick transitions from one to another. The Suspend feature can work with (but doesn't require) an Advanced Power Management (APM)-capable OS.

One of VMware's best tricks has to do with the special disk modes it presents to the guest OS. In Persistent mode (the default mode), each virtual disk acts like a standard hard disk. But the Nonpersistent mode, which you use the Configuration Editor to enable, as Figure 2 shows, lets you do some otherwise dreadful things to the VM with no dire consequences. For example, I deleted the entire Windows directory from my Win98SE VM. Then, I shut down and restarted the guest OS. Instead of the catastrophic failure that you'd expect under these circumstances, the VM booted as usual. Nonpersistent mode is handy in testing labs or training facilities or when you're trying to debug a new program or DLL. If you crash a test system, you can simply reboot, and within seconds you'll be back where you started.

Like a journaling file system, Undoable disk mode logs all changes to a file, but this mode lets the user decide whether to commit disk changes. VMware Workstation writes changes for the current VM session to a redo log file. Upon shutdown, VMware Workstation asks you whether to commit, discard, or keep the changes. The next time you activate that VM, VMware Workstation prompts you again to commit, discard, append, or cancel the changes to the redo file. You can change a VM's disk mode at any time as long as the VM is powered off.

If you need another computer system or two to do your job and don't have the room or the money for a new PC, consider one of these VMware Workstation products. VMware Workstation will change your notion of what a single desktop system can do.

VMware Workstation 2.0
Contact: VMware * 650-475-5000
Web: http://www.vmware.com
Price: $299 per version to download; $329 on a CD-ROM
Decision Summary
Pros: Solid, stable hardware emulation; clever Undoable and Nonpersistent disk modes make rollbacks easy; adds virtual nodes to any network at minimal cost
Cons: Limited SCSI device support; 2GB size limit for virtual disks; some holes in documentation