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.
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.
There are 3 companies offering free software for virtualization, microsoft virtual PC,
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:
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!
|© 2002—2010 Nikos Bozinis, all rights reserved|