Tuesday, February 23, 2010

Microsoft VirtualPC vs. Sun VirtualBox

What is a Virtual Machine (VM)?

A virtual machine (VM) is a computer that runs inside a window on your host computer. VMs are also great for testing–you can test different operating systems, applications, and configurations without messing up your computer. For example, you could run Windows in a VM on a Linux or Macintosh computer, allowing you to run Windows-only applications. Or, you could test out Linux in a VM on your Windows box without committing to it.

In fact, even if you install spyware, adware, or rootkits in a VM, they won’t infect your host computer. Just shut down the VM, and your computer is as clean as ever. VMs are also a great tool for learning networking, allowing you to connect several different computers when you only have one computer available.

After the jump, my recommendations for home users who want to use VMs:

Microsoft Virtual PC

Virtual PC is the right choice for people who just need to test downloads or browse the Web with total privacy. It’s free with Windows 7–in fact, Microsoft even includes a license for Windows XP to allow you to run any old applications that aren’t compatible with Windows 7. It’s polished, fast, reliable, and (like VirtualBox) it can share USB devices and network connections.

It also has a couple of unique features: It can log you on automatically to a Windows VM, it’s integrated into the Windows 7 Explorer interface, and it supports the AERO interface in Windows 7. It’s biggest downfall? It can’t run Windows Server 2008 R2, because it doesn’t support 64-bit VMs. Your host computer can run 64-bit versions of Windows, however.

Sun VirtualBox

This is my favorite free virtualization software because it does several things Microsoft Virtual PC can’t do. First, it can run 64-bit VMs. That’s important, because Windows Server 2008 R2 is only available in 64-bit. Second, it supports multiple processors on the VM, which can improve performance.

Third, and most importantly, VirtualBox supports snapshots. With a snapshot, you capture the state of a VM. Later, if you mess up the VM, you can return it to the snapshot state–like instantly restoring a computer from a backup. With a snapshot, you never have to worry about messing up a VM. Snapshots are great when you need to test something repeatedly and you want the computer to be in a “clean” state when you do it.

Feature Comparison

Both apps support the following features:

  • Run on 32-bit or 64-bit hosts.
  • Install integration software on the VM so that you can move your mouse in and out of the window–though this must be done after the operating system is installed.
  • Supports a variety of different operating systems on the VM, including different versions of Windows and Linux.
  • Connect USB devices to the VM–though this isn’t working in VirtualBox on a Windows 7 host for me–I get an error when it attempts to install the driver.
  • Automatically change the VM by resizing the VM window (this requires you to press a key in VirtualBox, but not in Virtual PC).

Microsoft Virtual PC has these unique features:

  • Supports Aero in Windows 7. This is the pretty, glass-like user interface, along with Aero-features like 3D-flip. To get Aero in VirtualBox, you need to connect to the VM using Remote Desktop.
  • Automatic login for Windows VMs. This saves you having to type Ctrl+Alt+Del and your password.
  • USB device sharing works properly with Windows 7. VirtualBox offers this feature, but it’s not working for all USB devices–for me, at least.
  • Integrated into Windows Explorer. VMs appear as files in a folder. Actually, I hate this feature–I’d prefer starting VMs from within an application.

Sun VirtualBox has these unique feature:

  • Runs on Windows, Linux, and Mac hosts. I’m a Windows guy myself, but I suppose if you’re using Linux or Mac, you’ll need this so you can run all those Windows apps in a VM. Ouch! No hatin’!
  • Run 64-bit VMs. This allows you to run Windows Server 2008 R2, which isn’t available as 32-bit.
  • Seamless mode. Applications in the VM act as standard Windows on your desktop. In other words, you can start an application in the VM, and move it anywhere on your desktop, even outside of the VM window. In the figure below, notice that I’m running Internet Explorer in Windows 7 on the lower window, and Internet Explorer in Windows XP on the upper window.
  • Remote display. You can use Remote Desktop (or any RDP client) to connect to a VirtualBox VM, even if the VM’s operating system doesn’t support it or the OS hasn’t yet been installed.
  • 3D and 2D video acceleration. This might allow you to do some 3D work, though performance still won’t be great on games.
  • Multiple processors. VirtualBox supports up to 8 CPUs in your VM–as long as your host has that many.

The Winner

VirtualBox is the clear winner–though I still need to use Virtual PC for those times when I need to share a USB device with a VM. I’ll also use Virtual PC for those times when I need the Aero user interface but Remote Desktop won’t do the trick.