Windows development on Linux
This is a short how-to which outlines how to develop on Windows without most of the pain associated with running Windows as the main OS. You'll need the following:
- CPU with virtualization extensions. Intel Core and up is OK. Recent AMD processors work as well.
- Linux distribution of your choice. I'll use Ubuntu 9.10.
- Installation disk for the Windows version of your choice. Windows XP is recommended, because it takes the least amount of disk space. Windows Vista or newer is required to utilize more than 2 cores for parallel builds.
- At least 1GB of RAM.
- At least 10GB of free disk space.
Installing Windows in a virtual machine
The virtual machine we'll be using is VirtualBox Open Source Edition. The instructions are valid for Ubuntu 9.10, but should also work in other distros.
First, install VirtualBox, either from the command line or through Synaptic.
$ sudo apt-get install virtualbox-ose $ sudo apt-get install virtualbox-guest-additions
Now run VirtualBox (it's in the Accessories menu) and create a new virtual machine. There are several options you can configure.
- Base Memory Size: I recommend at least 256MB. 1024MB should be plenty.
- Hard Disk: use dynamically expanding storage and at least 10GB. 20GB should be enough even if you install a lot of stuff.
Before starting the virtual machine, tweak the options that appear on the right pane. In particular, if you have more than 1 core, set the number of virtual processors to 2 for Windows XP or the actual number of logical processors for Vista, and enable IO APIC.
When all is ready to go, mount the Windows installation CD and start the virtual machine. Once you have installed Windows, applied the updates, etc., mount the file /usr/share/virtualbox/VBoxGuestAdditions.iso. The installation should start right away (Autorun). This will enable several convenient features, for example mouse pointer integration and live resizing of the VM window.
Setting up the development environment