I recently had the need for a virtualization solution for Windows to host some Linux-based embedded development tools. Not wanting to shell out big bucks for one of the commercial solutions, I decided to check out some of the free options.
VMs have come a long way in that past few years. You no longer need to spend a lot of money to get reliable, high-performance virtualization - especially for desktop use. I evaluated several free options before selecting one for my project.
I needed a VM solution that would allow me to host development tools for compiling and debugging a large embedded Linux project. The VM needed to be fast, able to run Ubuntu server reliably, compatible with both Windows XP and Vista and be reasonably easy to set up.
The following list is not a complete catalog of all free VMs available for Windows, just the ones I tried. See the links at the end of the article for more.
Bochs isn't really a virtualization solution - it is an x86 emulator. Boch runs on Windows, Linux, Mac OS and several other operating systems and has not limitation on the type of host CPU. It can run just about any x86 guest OS.
Bochs is very flexible and supports one of the widest varieties of host and guest OS combinations of the VMs I tested. Unfortunately, since Bochs works through emulation, it is pretty slow and so it didn't make the cut for my use.
QEMU (without KQEMU) is an emulator that supports a variety of processor types including x86, PowerPC, ARM, MIPS, SPARC and more. With the addition of the KQEMU acceleration module, QEMU becomes a true x86 virtualization solution that offers pretty decent performance.
Getting a complete QEMU solution up and running requires the main QEMU package, which is available in pre-compiled form for Windows, but has no installer, and the KQEMU accelerator which is also available in binary form for Windows with an installer. Configuration is manual through command-line options. For networking, you will need to download and install a TAP driver and set up a bridge.
QEMU is a great non-PC target emulator for embedded development, but as an x86 VM, I can not get it to run reliably under Vista. It works well in XP and Vista, but there are better, easier to setup and configure VM options.
VMware Server is a free, entry-level enterprise VM solution. It has a web-based VM administration interface and many other features oriented toward enterprise use. Ubuntu Server installs and runs cleanly, there there does not appear to be any shared folder support.
VMware Server looks like a good fit for enterprise use, but the web UI is cumbersome and overall the solution is overkill for my needs.
VMware's VMware Player is a free download that can host VMX-format virtual machine images from enterprise versions of VMware products. It does not support creating new images. You can use EasyVMX or other free options to generate new VMs or you can download ready-made "blank" VMs for several free OS types.
VMware Player works well on both XP and Vista and is certainly a good choice, especially if you want compatibility with your IT department's commercial VM solution (which is probably WMware). The only downside is the lack of an integrated ability to create new VMs, but that's not that big of an issue.
Virtual PC 2007 is a free download from Microsoft that supports x86 virtualization on Windows and and Mac OS X. Virtual PC 2007 can run a non-Windows guest operating system, but some features, such as shared folders, are only available when using a Windows, DOS or OS/2 guest OS.
Some Grub tweaking was required after installing Ubuntu Server to get the console to display properly, but other than that, things seem to work pretty well.
VirtualBox is a lightweight x86 VM from Sun that runs on Windows, Linux, Mac OS X and Solaris. VirtualBox is free for personal and evaluation use. An open source version of VirtualBox is also available under the GPL.
VirtualBox supports snapshots, fast host folder-sharing and many other features. Ubuntu Server installs and runs without a hitch and doesn't require any tweaking or hacking.
So far VirtualBox seems to be the ticket for me. The fact that it just works out of the box and supports local folder sharing for a variety of guest OSs gives it a clear edge over the others.
Links:
Comments
Post new comment