BEST VIRTUAL MACHINE TOOL
Perhaps one of the most miraculous things you can do on your computer is emulate another computer. The current wave of pc emulators for Windows work so well that they are revolutionizing the way software is tested.
VMware Workstation 5, our choice for Best Virtual Machine Tool, is the most powerful pc emulator currently available and has just gotten a major upgrade. The new version has some welcome additions to an already amazing program.
If you ever find yourself installing software to test it out, VMware will completely change the way you work - it will save you from cluttering your computer with junk, and eliminate all of the risk inherent in experimenting with new software. And if you are a programmer, VMware will change the way you test your programs, allowing you to experiment with a wide variety of operating systems and configurations without risk.
VMware Workstation 5 is expensive for a home user - as of April 09, 2005, the price for VMware Workstation 5 is $190, for the Windows or Linux host computer version. While a discount is available for academic users, we think it's a shame that VMware has so far decided not to offer a reduced-price license targeted at individual non-commercial users.
A 30-day trial version of the program is available at the VMware website here for Windows or Linux (requires you to sign up via email).
There is no better virtual pc program available than VMware Workstation 5, and we have awarded it our highest award: Best Software on the Planet, which we reserve for programs that far outshine their competition and have no substantial missing features. If you can afford it, and you're the kind of person who likes to try things out, it's an amazingly wonderful program to have, and it makes experimentation fun and painless. You'll wonder how you ever got along without it.
VMWare has generously donated 10 free copies of Workstation 5 to DonationCoder.com members (more information).
WHY DO I NEED A VIRTUAL MACHINE? WHAT DOES IT DO?
Any time you are in a position where you want to experiment with some new operating system, program, or windows tweak, and you suspect it might have unwanted effects on the computer, a virtual machine program like VMware will completely and painlessly eliminate all risk.
Essentially, a virtual machine tool like VMware workstation is a program which emulates a computer, complete with its own virtual disk drive, monitor, sound card, and network connection.
A virtual machine is completely isolated from your computer, and runs in a window like any other program. It can't damage your operating system and except where you explicitly state, does not have access to your normal files. It exists in a kind of "sandbox" where it cannot harm your normal pc.
One of the things that confuses new users is the fact that a virtual machine does not come pre-configured with a working operating system.
When you first run the virtual pc software, it's like turning on a new computer - it has no operating system. You can create as many virtual machines in software as you want - you install the virtual machine operating systems as you would normally install an operating system on a new computer, using the original cds or operating system installation files.
Once you've installed an operating system, you turn on your virtual machine in software just like you would a normal computer, except that you now have the additional ability to save and restore snapshots of the system state.
A virtual machine is the ideal way to test programs that you wouldn't want to run on your normal pc, like programs you think might be trojans or viruses. Or programs that might make changes to your operating system and conflict with other programs on your computer. It's also a great way to test different operating systems (for example if you wanted to try a new flavor of linux or Windows), and to install programs for temporary use that you don't want to install on your main pc.
HOSTS AND GUESTS
In the language of virtual machines, your normal pc is the host operating system / computer. It refers to your normal computer and operating system.
The guest operating system / pc is the virtual computer which exists only in software. You can have multiple guest computers and operating systems, and you can easily turn them on or off at will. Each guest virtual computer exists as a few normal files in a VMware subdirectory, and doesn't otherwise interact with your host computer.
VMware comes as software for either a Windows host machine or a Linux Host machine. Once installed, you can create virtual guest machines for any flavor of Windows, linux, unix, dos, etc.
The files for each guest machine you install are quite large, up to several gigabytes in size, so you will need a fair amount of free space to create a new virtual machine, but the size of these virtual pc files take up orders of magnitude less space than if you were installing these operating systems on a normal hard drive partition. And a nice benefit is that you can copy and move these files just as you would any other files, which is ideal for making backups.
SCREENSHOTS AND VIDEOS
Click on the thumbnails below for larger pictures from the official VMware site:
VMware supports a large variety of guest operating systems that you can install as virtual machines, and run simultaneously. The powerful networking options allow the different machines to actually simulate a virtual network and communicate with each other. Great for testing networking software or client-server applications.
The options for a virtual machine are nicely laid out and allow you to easily change things like how the virtual cdrom maps to your real cdrom (or to a .iso file), and whether or not you want things like networking to start up connected or not (good for security).
The most difficult part of setting up VMware Workstation is figuring out the virtual networking options. Depending on your network setup, there are different ways you can set up VMware to let it communicate to your host pc and to the internet.
One of the most welcome additions to VMware Workstation 5 is a very powerful snapshot facility. In prior versions of VMware Workstation you were allowed one snapshot/checkpoint of the system state, and you always had to ask yourself if you wanted to commit the current state to be your new checkpoint, or roll-back to your single checkpoint state.
Version 5 now allows you to have as many snapshots (checkpoints) as you want, and rollback to any of them.
This flash movie demonstrates VMware in action - starting a virtual machine and then rolling it back to a previous saved state:
THINGS WE LOVE - NEW V5 FEATURES AND OLD FAVORITES
STILL ROOM FOR IMPROVEMENT
VMware isn't yet perfect. Some minor issues we'd like to see addressed:
OTHER VIRTUAL MACHINE SOFTWARE
There were once two contenders for top dog in the windows virtual machine game, VMware and Microsoft's VirtualPC. Microsoft bought out VirtualPC from Connectix in 2003 and we haven't heard about much progress on it since then, although one of the Program Manager's on the VirtualPC project at Microsoft has a blog on VirtualPC which is regularly updated, so VirtualPC is still alive.
VirtualPC works well, though it seems to be losing ground fast with the release of VMware 5, and we see little reason to choose it over VMware at the current time, other than possibly the price.
There are a number of projects working on open source alternatives to VMware and VirtualPC. The dmoz Open Directory Virtual Machine List has links to a quite a few of them, as well as some good pages discussing the technology behind them. One particularly nice looking Open Source Virtual Machine Emulator is QEMU, which can run on Windows, Linux, and MacOSX.
The Open Source PearPc emulator, which can emulate Apple Macintosh PowerPc machines on Microsoft Windows, has gained a lot of press recently, due in part by a recent (possibly illegal) attempt to sell a version of it known as CherryOs. PearPc is a remarkable achievement by a small group of coders, and it actually works well and is useful for testing MacOsX software (and even compiling software for the Mac), though as everyone notes, it is extremely slow, orders of magnitude slower than programs like VMware or VirtualPC.
Linux users are familiar with the long-running Wine Project. Wine is not an emulator per se, but rather an attempt to build an open source GUI programming interface that is fully compatible with Windows, so that programs written for windows can run unchanged on linux/unix. This is a very different approach than VMware, which emulates an entire standalone computer; Wine is designed to allow Microsoft Windows applications to run natively just like any other application.
If you're intrigued by the almost magical world of emulation, you'll want to visit some of the game-console emulation sites, which have really spearheaded the emulation movement, and demonstrated how successfull emulation can be when tackled by determined reverse-engineers.
We think that the success of Virtual Machine technology, both in full machine emulators like those above, and in the recent crop of programming languages (java, .net), suggests the direction that we can expect computers and software to take in the future, becoming less and less hardware dependent, and more and more built as layered systems on top of standardized low-level virtual machines. We think that it's only a matter of time until the days of targeting operating systems and programming languages to the hardware of the machine will be looked back upon with curiosity and alarm.
If you like to try things, you need a virtual machine tool like VMware Workstation.
Once you get it up and running you'll look back in horror at the days when you tried stuff by actually installing it on your real computer.
In fact it's hard to convey the sense of joy and satisfaction you'll have when you install some piece of software on a virtual guest machine and watch as it corrupts your virtual machine's network drivers or registry, or causes a conflict with some other program, knowing that you've just saved your real pc from this fate. You'll smile as you watch it do damage to the virtual machine, knowing that if you had tried this program on your real pc you'd be crying at this moment, instead of just clicking a button to restore the state of the virtual computer.
And for programmers, VMware is now an essential tool. It will let you test your software on a variety of systems in order to make sure your code doesn't somehow depend on some required dlls or other files that aren't installed by default, and will let you experiment with different degenerate conditions without risking your own computer or those of your beta testers.
VMware Workstation 5 is a fantastic program. It's not cheap, and it takes a little effort to get it set up, but for what it does, we feel its worth its weight in gold; that's why we've awarded it our highest award: Best Software on the Planet. We wouldn't want to go back to testing software without it.