I've just implemented six such computers in our department, and it can work almost like magic.

VMWare Workstation 5.0 is very good at this and it costs $189.

There is an opensource alternative, called Bochs, which can be downloaded and compiled for free, provided you feel happy around the shell-based tools like make. It was not a simple configuration job and installation the last time I installed Bochs 2.0 on my Sun box -- I ended up needing to comment out quite a bit of the code in the C programs themselves. The advantage of Bochs is that it is truly platform-independent; it can run a Windows guest system upon Linux, Solaris, Macintosh and so on. The drawback is the performance penalty: it makes a pretty rapid dual G5 mac chug along like a PentiumII when I did some performance tests. I keep a copy going on eniac, my Sun machine, purely because I still love WordPefect for DOS, and it runs like a dream.

The alternative to a virtual machine approach is offered by the API map-and-wrap type programs like Wine. The name is an endlessly looping (not recursive!) acronym which denotes Wine Is Not an Emulator. This directly hooks the calls to the Win32 API made by applications into the equivalent Posix-style system calls in Unix. Some people claim this approach offers better performance than virtual machines, but they can never produce convincing numbers that prove it. I have an interesting-for-geeks theory as to why this is, if you are interested in chapter-and-verse let me know [Linked Image]

One thing is for certain and that is that a Wine-style approach offers levels of Windows compatibility that approach 90%. A virtual machine running a real copy of Windows on top of linux offers a higher success rate.

There are always a few apps that install drivers or other low-level modules which are unsupported either by the underlying linux kernel or else by the VM itself; in my case I was bitten by no VMWare support for a nasty cheap SCSI card which was one of the many horrible things that came with my old HP scanjet scanner. No major trouble in the end, because I plugged the scanner into an elderly Macintosh that was not much used and stuck it on the network. Everything Just Works on a Mac, so that was a happy ending, but it underlines the point that emulators or vitualization will not always provide a solution.

Nor do most games run well in emulation, but for ordinary business applications, a platform shifter gives a platform that is as good or better than a native system.