Running Windows in a Window
When people see my laptop running multiple operating systems in different windows, they all have the same reaction: "How are you doing that?"
It's called VMware Workstation, and it's a must-have tool for network admins, programmers, web developers, and anybody else who needs to test things under multiple operating systems.
VMware runs under Windows NT, 2000, XP, or Linux, and functions as a virtual PC. It creates a virtual machine that will act as a PC in a window, allowing the user to install any operating system that runs on Intel X86 machines. As I type this article, I'm installing Windows Server 2003 on a virtual machine in a window on my desktop, preparing to evaluate Exchange 2003. I don't need to purchase separate machines every time I need a new test bed - I just create another virtual machine.
The guest operating system (the one running in the window) shares most of the host operating system's resources. USB mice, network cards, audio cards, and more all appear as virtual devices, using special VMware drivers. No matter what network card the host operating system uses, the virtual machine sees a special virtual network card, and VMware handles all the networking transparently. The guest operating system can get its own IP address or use network address translation to share the host operating system's address.
Web developers who need to preview their sites in multiple operating systems and browsers find VMware especially useful. Multiple versions of Internet Explorer won't coexist together peacefully on a Windows machine, but with VMware, I can simply boot up a Windows 98 machine in a window and preview my sites in Internet Explorer 4 or Netscape 4 - without worrying about conflicts with my normal browsers.
Windows-savvy users who want to learn more about Linux can set up a virtual machine and install any flavor of Linux. There's no risk of accidentally trashing Windows hard drive partitions, because VMware manages the virtual machine files. Even better, Linux is actually much easier to install in a VMware virtual machine, because the virtual hardware is a standard that most Linux distributions recognize. I struggled for months trying to get various Linux installations to recognize my wireless network card in my laptop, but with VMware, any installation works right out of the box.
Software testers who need to repeatedly test software installations or changes love VMware's ability to have nonpersistent hard drives. For example, I can install a fresh Windows 98 virtual machine, and then set the machine's hard drive as nonpersistent. From then on, when I start the virtual machine, it's exactly as I originally installed it. I can do a test of a software installation that modifies the Windows registry or trashes system files, and when I power off the virtual machine, VMware asks me if I'd like to save the changes. At that point, I can say no, which loses all of the changes I made to that operating system - so that I can try the test again with a fixed installation program. It's like having backup/restore functionality for an operating system, only much faster and easier to manage.
VMware users can share virtual machines - very useful for software development. We can do a virtual machine setup with Windows 2000 Server on it, install an accounting system, and import a customer's accounting files. Then, any technical support user can copy the virtual machine files to their PC, start VMware, and run the accounting system in a window. The virtual machine is hardware-independent, so it doesn't matter if the two users are running completely different physical machines. I can copy virtual machines from my IBM ThinkPad laptop over to my Dell desktop, both with completely different video cards, network cards, and so on, and the virtual machines function flawlessly under both scenarios without any changes visible to the virtual machine's operating system.
Sharing virtual machines can be helpful when developers need to work on the same project in different cities. I can set up a virtual machine, do my testing inside the machine, and then if one of the program developers is unable to replicate a bug, I can simply send them the entire virtual machine so they can run it on their PC. They have to have VMware, and sending the virtual machine isn't a quick process - in the case of a Windows 2000 Server install, for example, it's often easier to FedEx a set of CDRW disks with the disk image rather than trying to copy the 2-4gb file over the Internet.
Sound too good to be true? It's not - but it comes at a price. The $299 license isn't cheap, but it's certainly less than keeping a spare PC and tape backup system around. Gauge the price of software development time, and the license pays for itself within a few weeks of work.
VMware is also resource-hungry: consider that the physical computer hardware is now supporting multiple operating systems running simultaneously, and it's not unrealistic to say that VMware performs best on a system with at least 512, and preferably 1024mb of RAM. Serious users will get the most bang for the buck running VMware on a dual-CPU system - both the host and guest operating systems will respond more quickly. Hard drive needs are tremendous: each virtual machine will require as much hard drive space as a typical installation. I've found that my barebones Windows 2000 Server images usually need 2-3gb. At any given time, I'll have 12-15gb of drive space on my laptop dedicated to virtual machines.
I've been using VMware since version 2.0, and the features I've described so far haven't changed in the last few years. With the recent release of version 4, there are a few valuable enhancements, but probably not worth the upgrade for version 3 users. The most notable addition is Snapshots: the ability to keep multiple copies of a virtual machine saved at different points in time. It's a lot like an integrated backup system that allows users to revert back to an old snapshot rather than discarding disk changes from a single session. It will be useful for software testers that need to test installation processes that span multiple reboots, for instance.
In summary, VMware turns a very difficult task into a simple, manageable, and even enjoyable one. More information and evaluation versions are available at www.vmware.com.
Brent Ozar is a HAL-PC member, web developer and network admin. He lives with his girlfriend, two turtles, and the sad knowledge that he will never kick his coffee habit. He can be contacted at firstname.lastname@example.org.