"Wine Is Not another Emulator." This is the recursive acronym hidden in the name of an application to which someone might direct you if you wanted to know how to run your Windows applications under a Linux distribution. However, what is hidden under the hood of this small kit you downloaded to make it happen? Keep reading and we shall find out.
Windows is the dominant operating system on the market. This is a fact no one can question. The market has grown addicted to it. More and more applications are built for this platform only. In fact, there is an abundance of all kinds of applications for Windows. You name it -- whatever you want -- and there is a very strong chance that there are a wide variety of programs that struggle to achieve that task, most of them on Windows.
This can be a good thing. However, this also leads to a monopoly situation controlled by the giant from Redmond. Any other operating system is destined to fail right from the start if it fails to provide the ability to do as many different things and use as many different kinds of software as Windows. As software developers tend to move away from portability, the only solution remaining for other operating system creators is to make their products capable of running applications designed for the Windows OS.
This is easier said than done, because every OS has a different approach to solving the same problem. Sometimes these approaches can be reconciled to work in a similar fashion. Then again, some features are just so different that it's close to impossible.
Regardless, the problem exists, and for that reason other operating systems must deal with it. There are two approaches to solving the issue. The first is to emulate a new operating system over the current one via a Virtual Machine. If you do this, there will be some performance penalties because you are effectively running two machines (operating systems) at the same time.
The alternative way is to put down a compatibility layer. Every programmer should already know that applications just call a bunch of system commands to complete different tasks. The role of the application is to interpret the result and put it all together to solve the user's problem. This approach tries to offer a collection of functions for applications requesting items from the operating system.
Wine bypasses the penalties of an emulator by implementing a compatibility layer, providing alternative implementations of DLLs to which applications under Windows link, and also offering services/processes that, under Microsoft's operating system, were provided by the NT kernel. Wine is a translation layer or a program loader.
Now that we have an of what we're observing here today, let me elaborate on our battle plan. First we are going to enter a little into the history of the application in order for you to understand the difficulties faced by Wine. We'll follow that with a presentation of its capabilities and a short guide to installing and using it.
There will be a second article shortly after this one in which I will try to answer the question of just how capable Wine is at the current time. In that piece I will try out applications like KMPlayer, Office 2007, uTorrent, notepad++, Winamp, FastStone Screen Capture and so on. For today, let's see what we have and how we got it.