You are on page 1of 27

Seminar Report 09 WINE

1. INTRODUCTION
1.1 WINDOWS AND LINUX Different software programs are designed for different operating systems, and most wont work on systems that they werent designed for. Windows programs, for example, wont run in Linux because they contain instructions that the system cant understand until theyre translated by the Windows environment. Linux programs, likewise, wont run under the Windows operating system because Windows is unable to interpret all of their instructions. This situation presents a fundamental problem for anyone who wants to run software for both Windows and Linux. A common solution to this problem is to install both operating systems on the same computer, known as "dual booting." When a Windows program is needed, the user boots the machine into Windows to run it; when a Linux program is then needed, the user then reboots the machine into Linux. This option presents great difficulty: not only must the user endure the frustration of frequent rebooting, but programs for both platforms cant be run simultaneously. Having Windows on a system also creates an added burden: the software is expensive, requires a separate disk partition, and is unable to read most file system formats, making the sharing of data between operating systems difficult.

1.2 WHAT IS WINE? Wine makes it possible to run Windows programs alongside any Unix-like operating system, particularly Linux. At its heart, Wine is an implementation of the Windows Application Programming Interface (API) library, acting as a bridge between the Windows program and Linux. Think of Wine as a compatibility layer, when a Windows program
Dept.of Computer Science CAS, Calicut 1

Seminar Report 09 WINE

tries to perform a function that Linux doesnt normally understand, Wine will translate that programs instruction into one supported by the system. For example, if a program asks the system to create a Windows pushbutton or text-edit field, Wine will convert that instruction into its Linux equivalent in the form of a command to the window manager using the standard X11 protocol. Wine is often used as a recursive acronym, standing for "Wine Is Not an Emulator". Sometimes it is also known to be used for "Windows Emulator" (An emulator duplicates (provides an emulation of) the functions of one system using a different system, so that the second system behaves like (and appears to be) the first system.). In a way, both meanings are correct, only seen from different perspectives. The first meaning says that Wine is not a virtual machine, it does not emulate a CPU, and you are not supposed to install Windows nor any Windows device drivers on top of it; rather, Wine is an implementation of the Windows API, and can be used as a library to port Windows applications to UNIX. The second meaning, obviously, is that to Windows binaries (.exe files), Wine does look like Windows, and emulates its behaviour and quirks rather closely.

1.3 WINE FEATURES Throughout the course of its development, Wine has continually grown in the features it carries and the programs it can run. A partial list of these features follows: Support for running Win32 (Win 95/98, NT/2000/XP), Win16 (Win 3.1) and DOS programs. Optional use of external vendor DLL files (such as those included with Windows). X11-based graphics display, allowing remote display to any X terminal, as well as a text mode console. Desktop-in-a-box or mixable windows. DirectX support for games.
Dept.of Computer Science CAS, Calicut 2

Seminar Report 09 WINE

Modem, serial device support.

ASPI interface (SCSI) support for scanners, CD writers, and other devices. Advanced unicode and foreign language support.

1.4 WINE VERSIONS Wine is an open source project, and there are accordingly many different versions of Wine for you to choose from. The standard version of Wine comes in intermittent releases (roughly twice a month), and can be downloaded over the internet in both prepackaged binary form and ready to compile source code form. Alternatively, we can install a development version of Wine by using the latest available source code from the Git repository.

1.5 WINE BENEFITS Wine makes it possible to take advantage of all the UNIX strong points (stability, flexibility, remote administration) while still using the Windows applications you depend on. UNIX has always made it possible to write powerful scripts. Wine makes it possible to call Windows applications from scripts that can also leverage the UNIX environment to its full extent. Wine makes it possible to access Windows applications remotely, even if they are a few thousand miles away. Wine makes it economical to use thin clients: simply install Wine on a Linux server, and voila, you can access these Windows applications from any X terminal. Wine can also be used to make existing Windows applications available on the Web by using VNC and its Java client.
Dept.of Computer Science CAS, Calicut 3

Seminar Report 09 WINE

Wine is Open Source Software, so you can extend it to suit your needs or have one of many companies do it for you.

1.6 WINE SIZE

Wine is not small at all. WINE 1.0 have over 1.8 million lines of C code (with blank lines and comments), ~300,000 of which are tests, and ~87000 are related to Direct3D (a subset of DirectX) implementation [original research]. That's because what a UNIX program assumes to find in a system is much less that what a Windows application assumes to find (which are thousands of Windows APIs [10]).

Dept.of Computer Science CAS, Calicut

Seminar Report 09 WINE

Dept.of Computer Science CAS, Calicut

Seminar Report 09 WINE

2. WINE INSTALLATION METHODS


2.1 INSTALLATION FROM A PACKAGE By far the easiest method for installing Wine is to use a prepackaged version of Wine. These packages contain ready-to-run Wine binary files specifically compiled for your distribution, and they are tested regularly by the packagers for both functionality and completeness. Packages are the recommended method for installing Wine. It is available at the WineHQ downloads page (http://www.winehq.org/site/download), and these are always the latest packages available. Being popular, Wine packages can also be found elsewhere in official distribution repositories. These can, however, sometimes be out of date, depending on the distribution. Packages are easily upgradable as well, and many distributions can upgrade Wine seamlessly with a few clicks. Building our own installable binary package from a source package is also possible.

2.2 INSTALLATION FROM A SOURCE ARCHIVE Sometimes the Wine packages dont fit our needs exactly. Perhaps theyre not available for our architecture or distribution, or perhaps we want to build wine using our own compiler optimizations or with some options disabled or perhaps we need to modify a specific part of the source code before compilation. Being an open source project, we are free to do all of these things with Wines source code, which is provided with every Wine release. This method of installation can be done by downloading a Wine source archive and compiling from the command line. Getting Wine source archives is simple. Every release, a source package in
Dept.of Computer Science CAS, Calicut 6

Seminar Report 09 WINE

Compressed tar.bz2 format is provided at the WineHQ downloads page (http://www.winehq.org/site/download). Compiling and installing Wine from source is slightly more difficult than using a package.

2.3 INSTALLATION FROM A GIT TREE If we wish to help develop Wine yourself, we can download the very latest source code from Git repository. Instructions for downloading from the Wine Git repository are available at http://www.winehq.org/site/git (http://www.winehq.org/site/git). The source code on the Git repository is largely untested and may not even compile properly. It is, however, the best way to test out how Wine will work in the next version, and if were modifying source code its best to get the latest copy. The Git repository is also useful for application maintainers interested in testing if an application will still work right for the next release, or if a recent patch actually improves things.

Dept.of Computer Science CAS, Calicut

Seminar Report 09 WINE

3. INSTALLING WINE FROM A PACKAGE


3.1 INSTALLING A FRESH PACKAGE Installing a package on a fresh system is remarkably straightforward. Simply download and install the package using whatever utility your distribution provides. There is usually no need to explicitly remove old packages before installing, as modern Linux distributions should upgrade and replace them automatically. If we installed Wine from source code, however, you should remove it before installing a Wine package.

3.2 DIFFERENT DISTRIBUTIONS Wine works on a huge amount of different Linux distributions, as well other Unix-like systems such as Solaris and FreeBSD, each with their own specific way of installing and managing packages. Fortunately, however, the same general ideas apply to all of them, and installing Wine should be no more difficult than installing any other software, no matter what distribution you use. Uninstalling Wine packages is simple as well, and in modern Linux distributions are usually done through the same easy interface as package installation.

Dept.of Computer Science CAS, Calicut

Seminar Report 09 WINE

4. INSTALLATION FROM SOURCE


Before installing Wine from source, make sure you uninstall any Wine binary packages you may have on your system. Installing from source requires use of the terminal window as well as a full copy of the Wine source code.

4.1 GETTING THE BUILD DEPENDENCIES Wine makes use of many open source libraries during its operation. While Wine is not strictly dependent on these libraries and will compile without most of them, much of Wines functionality is improved by having them available at compile time. In the past, many user problems were caused by people not having the necessary development libraries when they built Wine from source; because of this reason and others, we highly recommend installing via binary packages or by building source packages which can automatically satisfy their build dependencies. If you wish to install build dependencies by hand, there are several ways to see if youre missing some useful development libraries. The most straightforward approach is to watch the configure programs output before you compile Wine and see if anything important is missing; if it is, simply install whats missing and rerun configure before compiling.

4.2 LIBRARY SETTINGS Likewise, some applications require specific libraries in order to run. Wine reproduces the Windows system libraries (so-called native DLLs) with completely custom versions designed to function exactly the same way but without requiring licenses from Microsoft.

Dept.of Computer Science CAS, Calicut

Seminar Report 09 WINE

Wine has many known deficiencies in its built-in versions, but in many instances the functionality is sufficient. Using only built-in DLLs ensures that your system is Microsoft-free. However, Wine has the ability to load native Windows DLLs.

Dept.of Computer Science CAS, Calicut

10

Seminar Report 09 WINE

5. ARCHITECTURE
5.1 WINDOWS NT ARCHITECTURE

Dept.of Computer Science CAS, Calicut

11

Seminar Report 09 WINE

5.2 WINE ARCHITECTURE

Wine implementation is closer to the Windows NT architecture.

Dept.of Computer Science CAS, Calicut

12

Seminar Report 09 WINE

Wine must at least completely replace the "Big Three" DLL (KERNEL/KERNEL32, GDI/GDI32, and USER/USER32), which all other DLLs are layered on top of. But since Wine is (for various reasons) leaning towards the NT way of implementing things, the NTDLL is another core DLL to be implemented in Wine, and many KERNEL32 and ADVAPI32 features will be implemented through the NTDLL. The Wine server provides the backbone for the implementation of the core DLLs. It mainly implements inter-process synchronization and object sharing. It can be seen, from a functional point of view, as a NT kernel (even if the APIs and protocols used between Wines DLL and the Wine server are Wine specific). All DLLs provided by Wine try to stick as much as possible to the exported APIs from the Windows platforms.

Dept.of Computer Science CAS, Calicut

13

Seminar Report 09 WINE

6. WINE HQ
Wine homepage can be found at: www.winehq.org It gives: Information about wine. Wine can be downloaded from here. Provides help. Provides development reports.

Dept.of Computer Science CAS, Calicut

14

Seminar Report 09 WINE

7. COMMAND LINE
7.1 OPTIONS
Dept.of Computer Science CAS, Calicut 15

Seminar Report 09 WINE

wine --help Shows a small command line help page. wine --version Shows the Wine version string. Useful to verify your installation. Command line options are entered in the terminal.

7.2 INSTALLING FROM TERMINAL


Command line can be used for installing wine (alternatively used).

$sudo apt-get install wine

Dept.of Computer Science CAS, Calicut

16

Seminar Report 09 WINE

7.3 UNINSTALLING FROM TERMINAL

Simply enter the following in the terminal window :$sudo apt-get uninstall wine

Dept.of Computer Science CAS, Calicut

17

Seminar Report 09 WINE

8. ALTERNATIVES TO WINE
8.1 ANOTHER OPERATING SYSTEM Probably the most obvious method of getting a Windows application to run is to simply run it on Windows. However, security, license cost, backward-compatibility, and machine efficiency issues can make this a difficult proposition, which is why Wine is so useful in the first place. Another alternative is to use ReactOS (http://www.reactos.com), which is a fully open source alternative to Windows. ReactOS shares code heavily with the Wine project, but rather than running Windows applications on top of Linux they are instead run on top of the ReactOS kernel. ReactOS also offers compatibility with Windows driver files, allowing the use of hardware without functional Linux drivers. 8.2 VIRTUAL MACHINES Rather than installing an entirely new operating system on your machine, we can instead run a virtual machine at the software level and install a different operating system on it. Thus, we could run a Linux system and at the same time run Windows along with your application in a virtual machine simultaneously on the same hardware. Virtual machines allow us to install and run not only different versions of Windows on the same hardware, but also other operating systems, including ReactOS. There are several different virtual machine offerings out there, and some are also able to emulate x86 hardware on different platforms. The open source Bochs (http://bochs.sourceforge.net/) and QEMU (http://www.qemu.org/) can run both Windows

Dept.of Computer Science CAS, Calicut

18

Seminar Report 09 WINE

and ReactOS virtually. Other, commercial virtual machine offerings include Vmware (http://www.vmware.com/) and Microsofts Virtual PC (http://www.microsoft.com/windows/virtualpc/). There are significant drawbacks to using virtual machines, however. Unlike Wine, such programs are emulators, so here is an inevitable speed decrease which can be quite substantial. Furthermore, running an application inside a virtual machine prevents fully integrating the application within the current environment. We wont, for example, be able to have windows system tray icons or program shortcuts sitting alongside our desktop Linux ones, since instead the Windows applications must reside completely within the virtual machine.

Dept.of Computer Science CAS, Calicut

19

Seminar Report 09 WINE

9. SCREEN SHOTS ON WINE

An error occurred while trying to open an .exe file before installing Wine software.

Dept.of Computer Science CAS, Calicut

20

Seminar Report 09 WINE

Wine installation through a package by clicking on it.

Dept.of Computer Science CAS, Calicut

21

Seminar Report 09 WINE

After Wine installation. Now there is a new place for Wine under the Applications menu.

Dept.of Computer Science CAS, Calicut

22

Seminar Report 09 WINE

Installation of VLC media player in Ubuntu using Wine software.

Dept.of Computer Science CAS, Calicut

23

Seminar Report 09 WINE

VLC media player working in Ubuntu (Linux) environment due to Wine.

Dept.of Computer Science CAS, Calicut

24

Seminar Report 09 WINE

Uninstalling of softwares that were installed using Wine also can be done.

Dept.of Computer Science CAS, Calicut

25

Seminar Report 09 WINE

10. CONCLUSION

Wine is not complete, because it faces up with problems like catching up with more recent Windows systems. For example (not saying this have actually happened) when they completely supported Windows 95 applications, they were struck by XP, and then the XP SP1 and Windows 2000 (there are many editions in middle). Wine development is indeed much slower than the real development pace of the real Windows (thousands of organized developers vs. hundreds of random contributers-700 have contributed to Wine). Hope that Wine will overcome all its disadvantages and result in an allround development of Linux systems.

Dept.of Computer Science CAS, Calicut

26

Seminar Report 09 WINE

11. BIBLIOGRAPHY

www.winehq.org www.wikipedia.org www.about.com www.stason.org www.scribd.com www.codeweavers.com

Dept.of Computer Science CAS, Calicut

27

You might also like