virtual-pc-2007 virtualbox Microsoft Virtual PC 2007 SP1 and Sun xVM VirtualBox are both free hardware virtualization tools that can be used for testing purposes. If you plan to try Windows 7 or Windows Server 2008 R2, you should consider using a virtualization tool. Testing in a virtual environment has many advantages even if you have PCs for testing purposes. I guess most Windows admins tend to use Virtual PC simply because it is from Microsoft. However, VirtualBox is by the far the better tool, which is the topic of this article. VMware Workstation is certainly an even better choice if you are willing to spend $189.00. But for occasional testers, VirtualBox is sufficient.

When I first tried VirtualBox I thought it was not much different than Virtual PC. Only when I used it for a while did I find out that it has some essential features that Virtual PC lacks, as described below:

Multiple snapshots

virtualbox-snapshots One of the biggest advantages of running software tests in a virtual environment is that you can create a snapshot of a stable configuration which allows you to go back to that point in time if you mess up your system. Virtual PC 2007 SP1 has an undo function which can be considered as a single snapshot. VirtualBox supports multiple snapshots. This way, you can save states of your virtual machines the same way you store different versions of a text document. You can also create snapshots while the virtual machine is running. Virtualbox’s snapshot feature is as powerful as VMware Workstation’s.

64-bit guest support

virtualbox-windows-server-2008-r2 It is hard to believe but Virtual PC 2007 SP1 doesn’t support 64-bit guest operating systems. You can run it on a 64-bit host, though. VirtualBox supports 64-bit hosts and guests. You probably know that there is no 32-bit version of Windows Server 2008 R2. Thus, Virtual PC is no option if you want to try Microsoft’s latest server operating system. I ran Windows Server 2008 R2 on VirtualBox and it worked fine; just the virtual machine additions are not yet supported. This also applies for Windows 7. Basically, this means that there is no clipboard support (you can’t use copy and paste text between host and guest) and there is no seamless mouse integration (you have to press STRG to leave the VM with the mouse pointer). You might also recognize slower video output without the guest additions. I hope the next release will bring this feature.

Support for Linux, Mac OS X, FreeBSD, OpenBSD and Solaris as guest OS

Virtual PC supports only Windows as guest OS. There is an emulation for the PowerPC-based Mac OS X, but as far as I know you can’t run the x86 edition. You might be able to get Linux running on Virtual PC if you are a geek. But many report problems and it is not officially supported. VirtualBox on the other hand isn’t that choosy about the guest OS. If you like to look beyond the Windows horizon every now and then, then VirtualBox is certainly the better choice. Moreover, VirtualBox can be installed on Windows, Apple OS X, Linux, and Solaris.

Performance

I didn’t measure the performance difference between Virtual PC and VirtualBox myself. However, I have read several times that VirtualBox is faster. Tim Anderson compared the performance of VirtualBox 1.5.5 and Virtual PC using the PassMark suite and found that VirtualBox is about 50% faster than Virtual PC. The current edition of VirtualBox is 2.1.0. It is possible that the difference is even bigger now. Especially when you run multiple guests performance is an important factor even if you are only testing. (The Mars Box has a comprehensive performance comparison between VirtualBox and VMware Workstation.)

Remote Virtual Machines (RDP support)

virtualbox-vrdp If you have your virtual test environment on a remote server, then you will like the VirtualBox’s VRDP feature. VirtualBox has a built-in RDP server (VRDP) which allows you to connect to virtual machines with any RDP client. This is especially useful if your test environment uses private IPs and NAT because you can use the host’s IP for the RDP connection. To avoid conflicts with the RDP server of the host it is advisable to change the RDP port of the virtual machine. Each VM can have its own unique RDP port which allows you to connect to multiple VMs simultaneously. Note that the guest’s RDP server doesn’t have to be running. This should work even if the guest OS is Linux. I didn’t try this, though. Another cool VRDP feature is that you can access local USB devices within the virtual machine that runs on a remote server.

VHD and VMDK support

VirtualBox has its own disk format VDI (Virtual Disk Image), but it can open Microsoft’s VHD (Virtual Hard Disk) format and VMware’s VMDK (Virtual Machine Disk File) format. You don’t have to import or convert virtual disks to load a third party virtual machine. This can be useful, if you already have virtual machines that you want to continue using with VirtualBox. Furthermore, it is possible to evaluate Microsoft software through its pre-configured VHDs . At least, this is the theory. I tried to launch two VHDs with VirtualBox on a Vista x64 host and it failed to open with the error message invalid pre-header. Sun already knows about this bug and it should be fixed in the next version. I was able to open a VMDK file that I created with VMware Workstation 6.5 in VirtualBox, but older VMware virtual machines did not boot up. I suppose there are ways to get these VMs running too. However, you probably have to invest some time.

I didn’t discuss all the VirtualBox features that Virtual PC lacks (for example, multiple monitor support for the guest, or the ability to install VirtualBox on a GUI-less host), but it should be clear by now that VirtualBox is the more powerful virtualization solution.

Note that there are two editions of VirtualBox, an Open Source version and a commercial version. The commercial version is free of charge for personal and educational use. Commercial use for individuals within a company is also free if no more than one client connects to the host at a time.

The Open Source edition is released under the GNU General Public License (GPL) and lacks these features: RDP server, iSCSI support, Gigabit Ethernet Controller, and Serial ATA Controller.

The only feature I really miss in VirtualBox is the ability to create linked clones. It is the only reason that I stick with VMware Workstation. Linked clones are copies of a virtual machine which only contain the changes made to the guest. This reduces the storage space significantly if you work with many virtual machines. However, if the decision is between Virtual PC and VirtualBox, the better choice is obvious.