Tuesday, February 26, 2008

The Virtues of VirtualBox

Development Platform. As a newly-minted Ruby on Rails freelance developer, the first thing I wanted to do was find a development platform that wasn't Windows. Not that I have anything against Windows (indeed, I've taken Microsoft's side in many an argument), but lesser support for development tools and command line differences between the two platforms meant that I'd have a lot easier time using either Mac or Linux.

Macs cost alot; Linux distributions are free. That pretty much decided me in favor of Linux. The best Rails editor is available only for the Mac platform, but one editor wasn't about to compel me to pay for a Mac.

The next decision I had to make was whether to abandon Windows. I didn't want to lose the games I play, and I didn't want to spend the time rebuilding my current PC just to take advantage of the development benefits of using Linux, so I decided to try out a virtual machine.

Microsoft VirtualPC. Being accustomed to using Microsoft's development products over the last seven years, the first virtual machine application I tried was Microsoft's VirtualPC 2007. I was able to find some great posts with instructions on getting Ubuntu to work with VirtualPC and, after a couple of days, I had set up an Ubuntu system.

I used VirtualPC for almost a week; ultimately, there were two issues that prevented me from accepting Microsoft's product for the long haul. The first was the scroll wheel on my mouse: VirtualPC didn't support it. At all. This was apparently a decision they made to maximize compatibility with older operating systems, but, whiny as it sounds, having to click the scroll bar every time I wanted to move a window was a no-go. The second issue was sound: I just couldn't get it to work.

VMWare Workstation. The next product I tried was an offering from VMWare for a thirty-day trial of their Workstation product. I only spent about thirty minutes trying to get this software to work; the cost to purchase a license led me to decide if I couldn't get it up and running in a drop-dead simple way, it wasn't worth my money.

Innotek VirtualBox. The final product I tried was Innotek's VirtualBox. I was pretty annoyed by this time; wasted time and several failures had pretty much soured me to virtualization technologies. While browsing an old and crappy forum (so old and crappy, in fact, that I can't find it any longer), I found a reference to a product called VirtualBox. Figuring I had nothing to lose, I downloaded a copy of the software, installed it, and booted up a new virtual machine.

I was blown away. No hacks were required to get Ubuntu to install. The sound worked, the networking worked, even the scroll wheel worked right out of the box. In less than an hour I had a fully-working Ubuntu system at my fingertips. For free.

VirtualBox installs on Mac, Linux, and Windows systems. And it will run virtual instances of those operating systems on any of the others. It'll even let you set up shared folders between the two operating systems for easy transfer of files.

If you're going to use a virtual machine, I strongly recommend VirtualBox. It's by far the easiest virtualization software I've found, and it's free for most people.