Running XP on Linux with VirtualBox
I spent a couple of hours last weekend configuring my Dell Vostro 200 to dual boot between the Windows XP Home it came with and Ubuntu. For some reason the 20" LCD image gets shifted when I boot from one OS to the other. I can simply press the auto adjust button and it's fine, but it compounds the annoyance of having to stop what I'm doing in Linux to dual boot in the first place.
The optimal solution is to boot XP while running Linux, something that can be achieved with some virtualization software.
The last time I ran XP within Linux was with VMWare. I didn't want to pay for anything this time and I already had vague notions of Qemu and Xen. Once I actually looked into those I realized they weren't quite what I was hoping for. That's when I happened upon VirtualBox, an amazing product produced by a company that was recently acquired by Sun.
If you search for information on VirtualBox you'll see a lot of references to the fact that it's the best thing you've never heard of. I certainly hadn't heard of it prior to seeing it listed among some other virtualization options.
Installing VirtualBox is easy on Ubuntu because it's available as a package in the standard repository, so go ahead and install it. Once it's installed you can start it and begin configuring an image. If you have any experience with VMWare you'll find VirtualBox very easy to use. I set my OS type to Windows XP, set an initial hard drive size to 10GB, set the memory to 756MB and pointed it to a Windows XP .iso file I had available (you can also put a CD in your drive and use it to boot from when you start your virtual machine).
Once I pressed start, VirtualBox booted from the iso and I was able to enter the Windows XP setup process. Here you can see my 10GB hard drive. VirtualBox just needed something to get started with; you can adjust the properties of your virtual machine later through the main application window.
Here's a shot of the main window. I only have one virtual machine available, but you could have as many as you needed. It's easy to save snapshots of the virtual machine state and load them at later times also.
Here's the final product with XP installation complete. I installed SP2 after this and put Visual C# Express on the machine. VirtualBox can be configured to make certain directories available to the guest OS so that you can maintain files between your main OS and your virtual ones.
As for performance, VirtualBox doesn't disappoint. XP felt just as it does when I take the time to exit Linux and boot into my dedicated XP install.
Update I highly recommend installing the Guest Additions. You can easily download and mount the .iso for this through the VirtualBox menu. Once installed, you get seamless mouse clicking between host and guest as well as the ability to adjust your screen resolution beyond the defaults.
Verdict: VirtualBox is painless to install, easy to configure, installs from CDs or ISO's on your drive, can run a variety of guest OS's, is free, performs like VMWare, is stable, and fun. As a bonus, you can also browse the source.
Unless Sun does something weird with their new acquisition, I would expect the graph depicted near the bottom of the page in this study to shift markedly over the next year.