September 15, 2004

Review: VMware 4.5.2

Author: Jem Matzan

Virtual machine software allows you to run one operating system (and its applications) from within the environment of another. For years the most recognized name in virtual machine software for the x86 architecture has been VMware, whose eponymous industry-leading product supports a wide variety of guest operating systems. Recently EMC Corp. bought VMware, and has since released VMware Workstation 4.5 for $199. The most recent release is 4.5.2, which adds 64-bit host operating system support. There isn't much that VMware Workstation can't do, except perhaps achieve the level of performance that a genuine installation of the guest operating system enjoys.

You can install VMware Workstation 4.5.2 on either Windows or GNU/Linux, and earlier versions (before version 4.0) have native ports in FreeBSD. The supported guest operating systems for 4.5.2 are too many to list individually, but you can install various versions of Solaris, GNU/Linux, Windows, FreeBSD, and DOS. For this review I tested GNU/Linux as a guest operating system, but in the past I've installed Windows 2000 and Windows XP on version 4.0 and 4.5 using Fedora Core 2 and SUSE 9.1 Professional as hosts, and found the only problems to be exceptionally poor performance of the optical drive and a problem I never solved with printing from within Windows.

How it works

VMware is a shell that tricks a guest operating system into thinking that it has direct access to the hardware when in fact it is interfacing only with the shell. To achieve this, VMware uses a custom kernel module to create a virtualization layer which maps physical system resources to each guest operating system. The guest OS is assigned certain dedicated resources (contiguous reserved hard drive space, reserved RAM), and the rest (drives, peripheral cards, etc.) are shared between the operating systems inside the virtual machine and the host operating system and its programs. If this sounds like a drain on system resources, it is.

Linux needs to load the VMware kernel modules, vmmon and vmnet, during the boot sequence in order to use VMware and get networking to operate correctly in the guest operating systems. You can modprobe them later on, but some host systems I tested had trouble with networking when I loaded vmnet after boot time.

VMware gives you three alternatives for networking: You can set up networking as a bridged connection, which gives the guest OS direct access to the network card, or you can make the guest OS use network address translation to communicate with the host computer's external Ethernet network, or you can connect the guest OS to a virtual private network on the host system. Bridged networking is the easiest and most direct method of setting up your guest OS network connection.

The "hard drive" that the guest operating system sees is a predefined contiguous space in your /home directory. You can allocate all of the space during setup, or you can set the maximum space allowable and let the OS fill it up gradually as needed. In your user's /home directory you will find a new directory with the name of the guest operating system, and it will have some config files plus the virtual hard drive for the VM.

VMware allocates a set amount of RAM per running VM, so if you have three guest operating systems that each have 256MB assigned to them, and you have 1GB total system RAM, when you run all three at once you will have only 256MB left to run your host operating system. 256MB is not enough to get acceptable performance out of most computers; you'll want at least 512MB and preferably 768MB per operating system for maximum performance. You can see how running multiple guest operating systems eats up your resources quickly.

VMWare is a virtual machine; here you see the virtual POST screen before booting or installing a guest operating system

At its most basic level, VMware provides power-on self-test (POST) and basic input/output system (BIOS) code that closely resembles the same functions that a motherboard's built-in software performs. In order to install a new operating system from CD, you have to go into this false BIOS to set your CD drive to boot before the hard drive in some cases. The boot process also allows for PXE booting from your local network.

Requirements and prerequisites

One of the obstacles that VMware presents is its need for robust hardware. Your computer needs to not only be fast (a high-powered CPU), but you have to have a large hard drive and as much RAM as you can muster. 32-bit systems cannot address more than 4GB of system memory, although realistically you're going to start to run into trouble with 2GB or more; fortunately 64-bit host systems are now supported in version 4.5.2, and with a 64-bit system the sky is the limit for memory. I didn't test out the 64-bit host OS capability because it is still listed as experimental.

When setting up VMware you're going to have to have certain prerequisites in order to successfully compile the kernel module; this is why only certain GNU/Linux distributions are listed in the compatibility table. I successfully installed VMware 4.5.2 (and a previous release) on Fedora Core 2, and I highly recommend it as a VMware host platform even though it is not on VMware's compatibility list. I had little luck getting unsupported guest OSes to work well in VMware. Xandros 2.5 worked reasonably well, but VidaLinux didn't work at all, beyond the installation program. And if an OS doesn't work or install on the host system to begin with, it will not work as a guest OS either. With the exception of Fedora Core, my advice is to stick to the compatibility list for both the host and guest operating systems unless you enjoy spending hours recompiling your kernel, poring over message forums, and tracking down problems such as errant symlinks in your /lib directory.

Once you get a virtual machine started and an OS installed on it, your next step should be to install VMware Tools, a collection of programs that allow you to take full advantage of the maximum video resolution and color depth in your guest operating system. On first boot it's very difficult to navigate the virtual machine window because the graphics are corrupted and the window size is too large to fit on your desktop. If you choose to run in full screen mode, the graphics get even worse and make it almost impossible to use VMware. Most of the supported GNU/Linux distributions want to start with a graphical login, which means that X11 is started during initialization by default. This is a problem when you're trying to install VMware Tools because the installation must be run outside of X. That means you have to switch the default init level to 3 and then reboot; that in itself is not all that tough, but actually trying to see what you are doing while attempting to modify this setting is difficult at best. Once VMware Tools is installed, however, you can boot your guest OS into full screen mode, and if you weren't aware already, you'd never guess that you're actually running a virtual machine.

You can run multiple guest OSes at once, but each one takes up a huge chunk of system resources


VMware Workstation is the low end of the proprietary virtual machine offerings that EMC sells, and it's designed primarily for running workstation operating systems in an end-user environment. The more expensive and heavy-duty VMware products are designed for x86-based server computers, and run server-class operating systems. VMware does not emulate processor instructions -- or, more specifically, it does not emulate other architectures; it is only a shell that fools an operating system into thinking that it is being installed on an otherwise empty system.

Even though it's cheaper than it was six months ago, at nearly $200, VMware Workstation is prohibitively expensive for anyone who isn't making money using their computer. In some instances, VMware can save you money by eliminating the need for multiple computers at your desk, but the one machine that you consolidate onto will have to be powerful enough to run two operating systems at once.

Distribution support is spotty; support for other operating systems is better than it is for GNU/Linux, and as a host operating system GNU/Linux is far more difficult to install VMware on than Windows. A Windows VMware installation is quick, painless, and very simple. In GNU/Linux, VMware can be anywhere from difficult to impossible to install from the first installation script to the VMware Tools package at the end.

The product's license is Microsoft-like and prohibits the user from doing pretty much everything except using the program in a limited capacity. You also need to agree to the license for any operating system you install; you must be properly licensed to install proprietary guest operating systems. That means that in addition to the $200 you'd pay for VMware Workstation, you'll also have to pay for a Windows license if that's what you plan to install.

Purpose Virtual machine
Manufacturer EMC
Architectures x86, AMD64
License Proprietary, heavily restrictive to the user
Market Help desks, cross-platform software developers, and other professional environments that need one user to support or use a variety of platforms at once
Price (retail) $199 for the retail boxed version, $189 for the download edition. Upgrades are $129 and $99, respectively.
Product Web site Click here

Jem Matzan is the author of three books, a freelance journalist and the editor-in-chief of The Jem Report.

Click Here!