[xplorer˛] — Multiple OSs on a single PC
home » blog » 7 March 2010

A developer managing a program like xplorer˛ which runs on all windows platforms from 95 onwards has the unenviable task of testing on 5-6 different windows every time there's an update. In the past I was using a selection of dual booting PCs and separate old computers running the different windows versions for the tests. Recently I replaced my old computer with one that's capable of hardware virtualization and all my troubles went away.

When we are talking virtualization, we are running a separate version of windows or linux within a window on our desktop computer. A special program running on your normal (Host) operating system emulates another (Guest) OS. Within the emulated window all programs think they are running in a separate computer, albeit a bit slowly. The mechanism is a bit like MAME running pacman or donkey kong on your PC. There are many virtualization guides so I will just summarise the important steps to have you running all windows versions (32 and 64 bit) on your development PC. windows 98, 200 and XP running on windows 7


If you bought a computer within the last 3 years chances are that you should be able to run virtual machines on it. But for best results you need a CPU that offers hardware assistance to virtualization. It isn't enough having a 64 bit capable CPU (intel Core 2 duo, AMD Opteron etc), it has to support Intel-VT or AMD-V technology. The scene is clear with AMD processors, if you get a recent one it will almost certainly support AMD-V, however with Intel you must do a thorough test for VT technology, as their marketing strategy is rather confusing. Hardware support for virtualization is essential for windows 7 XP mode and running 64 bit windows on 32 bit hosts.

Then you need virtualization software that create and run the virtual machines. More on that below. Finally you need all the guest windows OSs you plan to virtualize. I have a MSDN subscription that gives me access to old windows versions, but if you have an old windows installation CD that can be used too. Remember that you need a proper license key to activate the virtualized windows after installation. Nobody will give you windows for free.

Virtualization software

There are 3 companies offering free software for virtualization, microsoft virtual PC, Sun Oracle virtual box and VMware server. If you have the time you can try all of them and see which one's best for you. From the reviews I read there's little to choose when it comes to performance, but size-wise vmware server is a monstrous 500+MB download and designed with a server architecture in mind so it isn't the most ideal solution for a small developer. Virtual box and PC are much lighter 70MB and 30MB downloads respectively.

I originally installed virtual PC 2007 which turned out to be very good and lightweight and easy to setup. There is a newer version but rather moronically (considering the competition) MS chose to have it not run on windows 7 home edition, but the older VPC 2007 is adequate. I have virtualized windows 98, 2000 and XP with it. Then I tried to install Vista 64 bit on my 32 bit host and realised that VPC cannot do cross 64/32 bit virtualization.

Enter virtual box, which not only can virtualize 64 on 32 bit (if you have the right CPU) but it can also do Linux if you are into that sort of thing. If you need a single solution for all your needs then virtual box it is. I am still keeping VPC as I have already gone into the trouble of installing windows versions with it. Virtual box is also a bit flaky with reliability as you can expect with a constantly evolving open source project.

Setting up virtual machines

This part is the best documented so I will skip obvious details. There are step by step guides for virtualbox and VPC2007 taking you through all the steps to install a guest operating system. The procedure goes like this:

  1. Install virtualization software
  2. Create new virtual machine
  3. Install guest operating system (and activate with key)
  4. Install VM additions (to make your life easier)
  5. Setup shared folders to exchange files with the host OS
  6. Install all necessary software (developer studio etc)

Steps 2-6 must be repeated for each operating system you want to virtualize. Under the hood the VM corresponds to a single file that represents the virtualized 'hard disk' with the installed software. This file is well managed so it is only as big as the size of the installed OS and its software, but it can get quite big nevertheless. Step 4 is essential for sharing the keyboard and mouse and allowing drag-drop between the VM and the host (I don't think virtualbox supports drag-drop though).

There are many small warts you will discover (e.g. sharing the internet connection with the host OS to activate windows vista). Windows 98 crashes a lot too. And there's a lot of tedious repetitive work installing developer studio and service packs on each and every windows installation. But overall it is an effort well spent. Happy cross-platform testing!

Post a comment on this topic



What would you like to do next?

Reclaim control of your files!
  • browse
  • preview
  • manage
  • locate
  • organize
Download xplorer2 free trial
"This powerhouse file manager beats the pants off Microsoft's built-in utility..."

© 2002—2010 Nikos Bozinis, all rights reserved