One thing we all have is lots of old software, and we always need to worry about how we will run that one crucial application next year, the year after, or a decade down the road. Will the hardware be available? Will the drivers and libraries required still be available?
My recent quest to run up an old computer game -- "Star Wars Episode I: Racer," published in the 1990s -- has been a good example of this problem, though, admittedly, rather more fun than dealing with some moldy accounting app. Even so, the same principles and complexities are involved.
A VISUAL HISTORY: 'Star Wars' video games
The game in question, "Racer," is one of the few games I have ever really liked, but it is fussy: It will only run under Windows 98 and requires DirectX 6.1 and 3D video acceleration.
I started my quest to raise the digital dead a few weeks ago by trying to get "Racer" running in a virtual machine under VMware Fusion on my iMac, but, alas, with no luck. While Fusion is pretty amazing in the range of operating systems it supports, it turns out Windows 98 with DirectX 6.1 and 3D acceleration is not a supported or supportable combination.
A few weeks later I tried Oracle's VirtualBox and, again, despite the awesomeness of this virtualization product, it too was not up to the task of running an obsolete, nay, antiquated, operating system with such specific requirements.
I had pretty much given up hope of ever being able to duke it out as Anakin Skywalker in a pod race with that swine, Selbulba, unless I set up a machine specifically for the purpose (which seemed like far too much effort) when I stumbled across CodeWeavers' CrossOver Impersonator.
Impersonator is a commercialized version of Wine, a free open source Windows emulator. Wine (which stands for "Wine Is Not an Emulator"), is, as the Wine folks like to point out, "not that kind of emulator."
By "not that kind" they mean that it's not trying to emulate an entire PC architecture. but rather, presents a system interface for applications that looks like the system interface for Windows.
Now some people assume virtual machines a la VMware are just better for a variety of reasons, and one that is often cited is performance.
The fact is that full virtual machines often aren't faster for the simple reasons that there's a lot of code between, say, a disk input or output request or a screen update, and the code that requests it. This is because the virtual machine has to encompass an entire operating system as well as emulations of video, keyboard and disk drivers and going through all of that code eats up processing cycles.
You could think of Wine as remapping operating system calls from a Windows interface to the host interface (which could be OS X or Linux), which means there's no need to "fake" an entire PC as, say, VMware Fusion does.
Another benefit of this kind of support for Windows applications is that Impersonator (but not Wine) provides predefined installation and configuration support for all of the Windows Office applications and scores of games. Even better, those applications are integrated with the host operating system so they can, for example, be launched by opening email attachments or from the file browser.
As for compatibility, yep, Wine does have issues with some applications but, surprisingly, not that many ... at least, not enough to put you off using it. These compatibility issues mostly come from the sheer messiness of the Windows APIs (remember when the Windows 2000 source code was leaked back in 2004? I doubt whether the hacks upon hacks nature of Windows code has been removed).
So, to handle the various eccentricities of Windows applications, what Wine and CodeWeavers' Impersonator do is to provide customizations for the systems interface to meet the demands of specific software packages.
When you compare Impersonator to, for example, dual booting, the advantages are obvious: Not having to reboot your entire machine and not needing a copy of Windows are huge. And compared to a true virtual machine solution such as VMware Fusion, Impersonator is lightweight in terms of memory and processor utilization and, in many cases, the application runs faster.
So, I installed the Impersonator Games version under OS X, went through the install and setup process -- which took mere minutes -- and voila! "Star Wars Episode 1: Racer" was up and running!
Now, it's true that there are a few problems; the mouse pointer in the game is offset from the system mouse pointer and the mouse response during game play is uneven (I'm sure there are some tuning options in the game and in Impersonator I haven't set up quite right), but it worked! I blasted around the Pod Racer course on Tattooine setting a new lap record (so the game told me) and left Sebulba in the dust. W00t!
As a strategy for migrating your legacy Windows desktop or server applications to OS X or, more cost effectively, to Linux, Impersonator offers some incredible cost benefits. CodeWeavers also provides an interesting and refreshingly honest explanation of what its product can do.
An interesting thought just occurred to me: What virtualization format will have the greatest longevity? If it turns out to be, for example, VMware's, then for those really fussy applications like "Racer," it might make sense to create a Linux VM using VMware, then install Impersonator, then the awkward app, and voila! A software time capsule!
Priced from $39.95 to $69.95, depending on which edition you choose, this solution to running Windows applications on other operating systems is an amazing value and provides terrific functionality. I'll give CodeWeavers' CrossOver Impersonator a rating of 5 out of 5.
Now, excuse me 'cause I've got me some racing to do ...
Gibbs is a winner in Ventura, Calif. Tell him if you have tiger's blood at firstname.lastname@example.org.
Read more about software in Network World's Software section.
This story, "Impersonator, a Different Kind of Virtualization" was originally published by Network World.