Wine Wine is not another Emulator. This is the
Shared by: mrz53354
Wine Wine is not another Emulator. This is the recursive acronym hidden in the name of this application what you could stumble upon or you were simply directed to while you are searching on the web to how to run your window applications under a Linux Distribution. However, what is hidden under the hood of this small kit you download to make all this happen? Come with me and we shall find out by the end of this article. Windows is the most dominating operating system on the market. This is a fact no one can question. Slowly the market is growing addicted to it. More and more applications are built for this platform only. In fact there is an abundance of all kind of applications for Windows. You name it what you want and there is a very strong chance that there is a wide variety of programs that struggle to achieve that task. This can be a good thing. However, this also leads to more monopole situation of the giant from Redmond. Any other operating system is designed to a failure right from the start if it fails to provide an offer at the same level. As software developers tend to ignore more and more portability the only solution remaining for the other Operating System is to make their products capable of running applications designed for the Windows OS. This is harder to do than said; mainly, due to the fact that every OS has a different approach to solve the same problem. Sometimes this can be correlated to work in a similar fashion. Then again some features are just so different that this is a task close to impossible. Regardless of this the problem is given and for the sake of the raising Operating Systems must be dealt with it. There are two approaches to solve the issue. The first is to emulate a new Operating System over our current one via a Virtual Machine. If you do like this there will be some performance penalties due to the fact that you run two machines (OS’s) in the same time. The alternative way is to lay down a compatibility layer. Every programmer should already know that applications are just calling 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 accomplish the problem of the user. This approach tries to offer this collection of functions for applications requesting it on the Operating System in case. Wine bypasses the penalties of an emulator as implementing a compatibility layer, providing alternative implementations of DLLs that application under Windows link and also offering services/processes that under the MS OS was provided by the NT kernel. Wine is a translation layer or a program loader. Now that we have a small idea what we are observing here today let me elaborate the battle plan for today. First we are going to enter a little in the History of the application in order for you to understand the difficulties faced by Wine. Follow on with a presentation of its capabilities and a short guide how to install it and use it. There will be a second article shortly after this one in which I will try to answer the question just how much capable is at the current time Wine. Inside this I will try out applications like the KMPlayer, Office 2007, uTorrent, notepad++, Winamp, FastStone Screen Capture and so on. For today let us see what we have and how we got it. History Lesson From the start I should tell you that Wine is not a user friendly application. At least not for now that is. Wine is still in development and due to this it is more based to offer functions rather than make it user friendly. So using the terminal and modifying files to get programs working is every day job here. Still the version1.0 was launched last year on 17 June 2008 so it is time to see what it can achieve. Everything started way back in 1993. By this time windows started to get its claws on the market of the Operating Systems doubled with the failure of the IBM with the OS/2. This failure was recognized by adding built in support for the MS OS. In 1992 SUN via the Paraxys Technologies studio started to develop Wabi. The capabilities of this was demonstrated in 1993 and offered support for the Solaris X86 and 2.2 for Sparc Operating Systems to run out of the box Windows Applications. In 1993 after a short conversion between a few Linux developers it was decided that something similar was required for the new Unix based OS also. Early members included Eric Yongdale, David Metcalfe, Migual de Icazc and Alexandre Julliard who a year later take over the project and is its leader ever since then. The initial objective was to take Window 16 bit binaries and execute it on the Linux. After just 6 months of development Solitaire was already running. Also in 1993 was made the first port to NetBSD by a patch uploaded by John Brezac. Currently there are version for most of the UNIX based systems (included the MAC OS X) and Windows also. Everything got just a little more complicated after as MS extended its applications to 32 bit in 1995 and no longer was possible to just load and execute the binaries. New mechanics had to be added like the networking and registry file systems. In 1998 Corel started to sponsor the team as it intended to provide Linux systems that are easy to install and use. The main objective was to make the Corel Office to run via the Wine. During this period some internal teams also worked to improve Wine, later on they will form the Xandros. In 2001 followed after a massive investment into Corel from Microsoft the company abandoned its support. The gap left behind was filled by the Codeweavers who helped the project earlier also. Codeweavers intention is to use Wine to improve its CrossOver application. Still some of this differs from the picture imagined about Wine so the two projects although share a good amount of the data continues to run on in the same time. WineX was formed in the following period which objective is to offer DirectX support and with it to run Windows games under UNIX systems. In 2003 the DLL separation system was finally achieved. Native DLLs can be used, however for using the Windows DLLs a license for that is required unless the application brings with it the dynamic library. Up to this time Wine has more than 1.4 million lines of code and more than 1000 contributors. That is a huge effort from a large community. Features and why trouble? All this looks like a massive investment and a lot of trouble in the start both from the user and the development team. So the obvious question is why we should struggle to make this happen and work. The reasons to do so are multiple. Wine will diversify your options. You can use under UNIX systems both applications designed for this system only and the applications also developed for the Windows. Other than this the market will also be healthier. Currently Microsoft has a market share of 95% on the world of Personal Computers and of an 80% if we add to this the Macs. We start to heavily depend on the MS system and this is not a good thing. If anything goes wrong with that (let say an unexpected virus) we are very vulnerable. Wine can assure that you can keep use the applications designed for Windows as it is not the same with that and does not have the same faults. This will also lower the barrier that stops many users to switch from the Windows Operating System to Linux. Remember that Linux distributions are most of the time free while MS wants you to pay for every new version of their product. Do you have a few preferred applications under Windows without you just cannot work? Switching to Linux will not be an issue for this. Wine will assure that if there is not a Linux distribution for that it will still run for you. The project is an open source one licensed under the GNU Lesser General Public License. It will also allow calling windows applications from scripts, accessing the application remotely from any other system or even putting it on the Web with VNC plus its Java Client. It allows you to run application that would never ever otherwise to be compiled for the Unix systems like the MS Office suit, use applications like the Media Player or even play Games like Max Payne, Spore or more modern ones like Bioshock. The main factor that slows than the evolution of the project is that Microsoft provides incomplete and someplace incorrect documentation about the API. Even better while most of the functions are documented some portions like file systems and protocols are not discussed in any official paper. The only viable solution to figure out this one is the black box strategy. This translates to observe what the function should do and offer an answer that satisfies this. More importantly the MS OS has a couple of obscure bugs that in order for some applications to work correctly must be also made in the same fashion by Wine. This is called bug for bug system. Other significant features offer the capability to load Windows programs and libraries, Win32 system like exception handling, memory management and translation of signals into basic Windows ones. The applications will run normally and all the messages/services offered by Windows on the MS OS are handled by a daemon process known as wineserver. Wine is not a module to translate the messages to UNIX messages. It offers its own solution for problems. Setting it up Let us see it then what we have. First we need to get the application. Choose the correct version for your computer from the official download page here and act as pointed. I will exemplify all this for the Ubuntu 8.10. The easiest and most straight forward approach is if you also have internet connection is to just enter the following commands into the terminal. First add the application to the trusted ones. wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add – Add the repository to the systems APT sources list: sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/intrepid.li st -O /etc/apt/sources.list.d/winehq.list Update the package information. sudo apt-get update Install the application: sudo apt-get install wine You can find the terminal via Accessories-> Terminal. Enter the password and once the installation is done a new menu should have appeared. A couple of application you can already see as installed inside mine list. The installation of all the setups will be similar as you would do on Linux. All you need to do is to open it with Wine as shown on the picture below. As already told the team is not yet finished with the complete API of the windows. Even after 13 years of development many things are yet not supported, integrated. Time will solve this perhaps, or only a more massive investment in all this. Lately the first packages for the 64 bit applications has been also revealed. However this are still only in pre-beta stage. Priority takes the Wine 32 bit to complete. Given on this factor some applications may just work without any problem while others simply refuse to start. For this there has been made a central database here what collects the overall reaction of the users to a software. Here you can check if this is working as should or not. Based on the overall behavior of the application there exist four kinds of applications: platinum, gold, silver, and bronze. You may start and check out your favorite applications at which rank they are in the list. During the next week I will try out a couple of the most popular ones over the Windows to see if you can make the migration to the Linux from Windows as easy as it sounds all this. There I will also cover how third party applications of Wine struggle to make easy your life. Thank you for reading my article and I would like also to encourage you to rate it accordingly. If you have any kind of question related to this article you are free to state it in the blog following the article. If you want to debate longer or just have any other question you can visit and join the forum entitled DevHardware and ask your questions from our group of experts. Live With Passion!