In terms of using Ubuntu Linux as my laptop operating system, I have often been put in the predicament of needing to use applications that either I only have for Windows or applications that are not available for Linux. In the latter case, many hardcore Linux devotees will argue that a free open source Linux app can most likely be found for Linux to replace a Windows app. However, in the cases where a comparable software is not available for Linux, the user is often left in frustration.
So what can be done about this? I have found two options that provide the solution for this dilemma:
I. Use a Windows translation layer such as Wine
Wine is a translation layer (a program loader) capable of running Windows applications on Linux and other POSIX compatible operating systems. Windows programs running in Wine act as native programs would, running without the performance or memory usage penalties of an emulator, with a similar look and feel to other applications on your desktop.
I have Wine installed on my Ubuntu laptop, however, the main issue with Wine is that not all Windows programs are supported. Application support seems to be added on a one-off basis. On the positive side, the website maintains a ‘App Database‘ that you can use to see how well specific Windows applications are supported. The App Database uses a five level rating system:
- Platinum – app installs and runs flawlessly ‘out of the box’. No changes required.
- Gold – app works flawlessly with some DLL overrides, other settings or third party software.
- Silver – app works excellently for ‘normal’ use; a game works fine in single-player but not in multi-player, Windows Media Player works fine as a plug-in and stand-alone player, but cannot handle DRM etc.
- Bronze – app works, but it has some issues, even for normal use; a game may not redraw properly or display fonts in wrong colours, or be much slower than it should etc.
- Garbage – app cannot be used for the purpose it was designed for.
For example, if you go to the App Database and lookup Adobe Acrobat 9.0 Pro, you’ll see it has a ‘Bronze’ rating – looks like you’re out of luck! Guess it’s off to option number two for you.
II. Use virtualization software such as VMware or VirtualBox to run Windows within Linux
Virtualization software such as VMware runs great on Linux. You can literally run any Windows app, and unlike Wine, the apps aren’t supported on a one-off basis because you are actually running off the real operating system. Virtualization software actually uses a part of the hard drive to emulate another PC. The operating system itself, you install using your Windows CD or an ISO image of the CD.
What’s so cool about this option is that you can have Windows running in fullscreen mode on Desktop Two and easily switch from Linux on Desktop One to Windows on Desktop Two. You can even copy and past text and files from one OS to the other! Pretty cool huh? The downside of using virtualization software is you have to start another OS after your Linux system boots. Sometimes I find it painful to have to load two operating systems just to use the app I need. As if waiting for Windows alone to boot-up isn’t slow enough! Also, running VMware within Linux does eat up some considerable resources. For example, sometimes I notice whenever I am using an application in Linux, it pauses more often when VMware is running. Fortunately, the pauses are usually only a second or two and usually only occur when I am running a resource intensive process within Windows.
So, between these two options, it’s recommended to use Wine if the app is supported, simply because the app should run faster via a native loader than on top of a virtual machine. Also, this will prevent you from having to run two operating systems and allow you to save on your computer’s resources such as hard drive space, memory, and processor cycles. If your app is not supported by Wine at an acceptable level, than the virtualization option will be the right fit.