As a computer scientist, I find OS monogamy an impossible commitment: I want to use my desktop applications (Microsoft Office, Adobe CS) in Windows but the staple of my experimental work has to be done in some flavour of Unix.
To handle both systems, I have tried all sorts of solutions:
- a single dual-boot machine;
- two complete boxes side by side on my desk;
- two boxes and a single head (one monitor, keyboard and mouse) with a hardware “interface switch” to alternate between the systems;
- a headless Linux box connected to the Windows system with a SSH shell prompt (giving up Linux’s GUI);
- a headless Linux box connected to the Windows system using a free version of VNC (prompting the ire of the sysadmin guy — apparently I’ve unwittingly opened some ports I shouldn’t, but he eventually got it figured out).
The dual-boot configuration was, of course, the worst. Using two complete boxes was, surprisingly, the second to worst solution, not only because of that confusing alternation of keyboards and mice, but also because of the impossibility to do “copy and paste” between the systems. With the “interface switch”, there was no keyboard juggling, but no “copy and paste” either. Worse, the switch was quite unreliable, causing video quality issues and an irritating “keyboard-sudden-death-syndrome” treatable only by reboot.
The “Linux client in Windows” solution was not a bad choice. Actually, I’ve been using it for years, but… there is still the problem of having to use two machines. As soon as I take my laptop from its docking station and quit the building, I am cut off from my Linux half.
Enters virtualisation, a not-so-recent technology (the term was coined in the 1960’s) that has recently gained the status of buzzword because of its potential benefits on grid computing applications. As the name implies, virtualisation is the creation of a virtual machine on the top of which a system is executed. This allows a guest system to run on top of a host system in a controlled, isolated environment — and what is best: the guest and host systems don’t have to be the same!
The possibilities are many:
- I can run Linux on my Windows box and have my Linux machine just an “alt+tab” away;
- I can have several Unixes (FreeBSD, Ubuntu, openSUSE, Mandriva, Debian…) to run as I fancy;
- I can make a copy of the virtual machine’s files before doing potentially disrupting stuff (like installing suspicious software). If something goes wrong, I can easily and completely rollback the machine to its pristine state;
- I can even run Windows on Windows for the same purpose. I can for example, keep a virtual machine exclusively to open suspicious mail attachments.
Now, for the drawbacks:
Each virtual machine implementation has its quirks. Microsoft Virtual PC does not officially support Linux, Sun’s VirtualBox demands a lot of tweaking to get things running, and VMware Player (my favourite) has no support to create the virtual machines, just to execute them. By the way, all three solutions are free-as-in-beer, but only VirtualBox is (mostly) open source.
As I said, you can’t create virtual machines with VMware Player. To do that, you have to buy another VMware product, VMware Workstation, for about 190 bucks. Or (like me) you can be cheap and look for prêt-à-porter machines on VMware Application Marketplace — I’ve found neatly installed images of most Linux distros.
If you need something more exotic, customised, or… proprietary, there is EasyVMX, an useful website, which creates, for free, an empty virtual machine where you can install the OS of your choice.
VMware does not come with VMware Tools, an optional (but absolutely essential) package which, among other things, enables copy & paste between the host and guest OSs. But this is not deal breaker, as this website has a workaround, and this thread in VMware community says it is legal, but use it at your own risk, or better yet, check it with your favourite lawyer.*
Speaking of lawyers, I’ve found that software licensing for Virtual Machines is prone to hazards. I’ve discovered for example, that my OEM Windows XP license does not allow me to put it in a virtual machine. If you, like me, can’t live without proprietary software, brace yourself for some entertaining EULA deciphering and a few interesting phone chats with the juridical department.
* EDIT 30/03: I’ve found out that VMware has put the vmtools on open source, so this this is one less concern. The package is bundled in some distros (like openSUSE), and it is available at SourceForge.