Introduction What is Wine? Written by &name-john-sheets; &email-john-sheets; Modified by &name-dustin-navea; Windows and Linux Many people have faced the frustration of owning software that won't run on their computer. With the recent popularity of Linux, this is happening more and more often because of differing operating systems. Your Windows software won't run on Linux, and your Linux software won't run in Windows. A common solution to this problem is to install both operating systems on the same computer, as a dual boot system. If you want to write a document in MS Word, you can boot up in Windows; if you want to run the GnuCash, the GNOME financial application, you can shut down your Windows session and reboot into Linux. The problem with this is that you can't do both at the same time. Each time you switch back and forth between MS Word and GnuCash, you have to reboot again. This can get tiresome quickly. Life would be so much easier if you could run all your applications on the same system, regardless of whether they are written for Windows or for Linux. On Windows, this isn't really possible, yet. Technically, if you have two networked computers, one running Windows and the other running Linux, and if you have some sort of X server software running on the Windows system, you can export Linux applications onto the Windows system. A free X server is available at http://xfree86.cygwin.com/. However, this doesn't solve the problem if you only own one computer system. However, Wine makes it possible to run native Windows applications alongside native Linux applications on any Unix-like system. You can share desktop space between MS Word and GnuCash, overlapping their windows, iconizing them, and even running them from the same launcher. Emulation versus Native Linking Wine is a UNIX implementation of the win32 libraries, written from scratch by hundreds of volunteer developers and released under an open source license. Anyone can download and read through the source code, and fix bugs that arise. The Wine community is full of richly talented programmers who have spent thousands of hours of personal time on improving Wine so that it works well with the win32 Applications Programming Interface (API), and keeps pace with new developments from Microsoft. Wine can run applications in two discrete ways: as pre-compiled Windows binaries, or as natively compiled X11 (X-Window System) applications. The former method uses emulation to connect a Windows application to the Wine libraries. You can run your Windows application directly with the emulator, by installing through Wine or by simply copying the Windows executables onto your Linux system. The other way to run Windows applications with Wine requires that you have the source code for the application. Instead of compiling it with native Windows compilers, you can compile it with a native Linux compiler -- gcc for example -- and link in the Wine Libraries as you would with any other native UNIX application. These natively linked applications are referred to as Winelib applications. The Wine Users Guide will focus on running precompiled Windows applications using the Wine emulator. The Winelib Users Guide will cover Winelib applications. Burning questions and comments If during reading this document there is something you can't figure out, or think could be explained better, or that should have been included, please immediately mail to either the &name-web-admin; &email-web-admin; or the &name-wine-devel; &email-wine-devel;, or post a bug report to Wine's Bugzilla to let us know how this document can be improved. Remember, Open Source is "free as in free speech, not as in free beer": it can only work in the case of very active involvement by its users ! Wine Requirements and Features Written by &name-andreas-mohr; &email-andreas-mohr; Modified by &name-dustin-navea; System requirements In order to run Wine, you need the following: A computer ;-) Wine: only PCs >= i386 are supported at the moment. Winelib: other platforms may be supported, but can be tricky. A UNIX-like operating system such as Linux, *BSD, Solaris x86, ReactOS, Cygwin >= 32MB of RAM. Everything below is pretty much unusable. >= 96 MB is needed for "good" execution. An X11 window system (XFree86 etc.). Wine is prepared for other graphics display drivers, but writing support is not too easy. The text console display driver (ttydrv) is nearly usable. Wine capabilities Now that you hopefully managed to fulfill the requirements mentioned above, we tell you what Wine is able to do/support: Support for executing DOS, Win 3.x and Win9x/NT/Win2000/XP programs (most of Win32's controls are supported) Optional use of external vendor DLLs (e.g. original Windows DLLs) X11-based graphics display (remote display to any X terminal possible), text mode console Desktop-in-a-box or mixable windows 32 bit graphical coordinates for CAD applications, pretty advanced DirectX support for games Good support for sound, alternative input devices Printing: supports native Win16 printer drivers, Internal PostScript driver Modems, serial devices are supported Winsock TCP/IP networking ASPI interface (SCSI) support for scanners, CD writers, ... Unicode support, relatively advanced language support Wine debugger and configurable trace logging messages