Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
389 lines (273 sloc) 12.3 KB
Ogden Area Linux User Group
:Presenter: Seth House
:Date: 2008-06-28
.. include:: <s5defs.txt>
.. footer:: Wine
.. class:: handout
Wine is a recursive acronym that stands for Wine is Not an Emulator. Wine
is an Open Source implementation of the Windows API on top of X, OpenGL,
and Unix.
“Think of Wine as a compatibility layer for running Windows programs.
Wine does not require Microsoft Windows, as it is a completely free
alternative implementation of the Windows API consisting of 100%
non-Microsoft code.”
Even the fastest emulators are slow and must 'fake' running emulated
programs natively. Wine natively runs Windows programs at native speeds.
Also, it should be noted that speed is currently not a goal for the Wine
.. class:: incremental
Wine Is Not an Emulator
“Windows applications that do not make system calls will run just as
fast as on Windows.”
So What is Wine?
.. class:: handout
“Wine provides both a development toolkit for porting Windows source
code to Unix as well as a program loader, allowing many unmodified
Windows programs to run on x86-based Unixes.”
.. class:: incremental
* Wine
* Winelib
A Not-So-Short History
.. class:: handout
In 1992 Sun Microsystems aquired a company with a product that allowed
users of Solaris x86 and Solaris 2.2 for SPARC to run Windows applications
out of the box. Wabi was unique in that it allowed Windows windowing calls
to be translated directly to X Windows calls.
At the time, the chances of Wabi being ported to Linux were slim to none.
So in 1993 a mailing list was formed to discuss a similar project for
Linux. Several of the early developers included some of the first Linux
kernel hackers.
In 1994 Microsoft began releasing 32-bit code and adding new functionality
to their operating systems. It was no longer enough to just load code and
run it, a more sophisticated integration was needed with the underlying
operating systems (primarily Linux.) Mechanisms needed to be added that
supported network connections and registry files.
Doug Ridgway set up the WineHQ web site in 1997. The site was taken over by
Corel for a few years, and then CodeWeavers took it over from them in
March, 2002.
In 1998 a strategic decision was made by Corel to wholeheartedly support
Linux. Corel’s suite of office programs demanded a high level of Wine
sophistication. For the first time Wine was being supported by commercial
development. CodeWeavers was contracted by Corel to improve parts of Wine
in 1999.
Early 2001 Corel spun off its Linux division and CodeWeavers began
developing their own products and putting a lot of polish on Wine. Their
own version of Wine included graphical management tools and an easy setup.
Their first product, CrossOver Plugin, allowed Linux users to run Netscape
plugins designed for Windows. Newer versions of the product have added
support for even more plugins. They released CrossOver Office in March,
2002 to provide support for office applications like Excel and Lotus Notes.
TransGaming formed in August of 2001. Gavriel State, who had been with
Corel, left and formed his own company. Limited DirectX support had been in
Wine since 1997 and Gavriel sought to make it more robust. WineX 1.0 was
released in October of 2001 with support for six games. Some of the early
TransGaming work also sought to include support for copy protection
The Linux distribution Lindows also formed in 2001. It’s goal was to create
a simple to use Linux desktop and to let users run Windows programs. They
quickly abandoned the idea in favor of native applications, but before that
happened they sponsored Wineconf - a three day event in March, 2002 that
brought together developers from around the world.
Licensing debates plagued the project for several years. In the beginning
it was under a BSD-style license, but in 1999 Richard Stallman pointed out
that was incompatible with the GPL which potentially causes problems with
any open source project wishing to use Wine code. A vote was called for and
in January of 2000 the project switched to the X11 license. In March of
2002 a poll was conducted among both the free and commercial developers of
Wine—there was concern that the code may be appropriated by a commercial
entity—so they chose the Lesser General Public License since that meant
changes to Wine required that you release the source code with your changes
but simply linking with Wine does not require you to release the source to
your application. Wine development picked up speed after this change.
Another developer’s conference was held in January, 2004 in St. Paul
Minnesota sponsored by CodeWeavers.
Microsoft has not made public statements about Wine. However, the Microsoft
Update software will block updates to Microsoft application software
running in Wine-based environments. On February 16, 2005, Ivan Leo Puoti
discovered that Microsoft had started checking the Windows registry for the
Wine configuration key and would block the Windows Update for any
component. The Windows Genuine Advantage (WGA) system also checks for
existence of Wine registry keys.
.. class:: incremental tiny
* September 1992
Sun Microsystems demonstrates Wabi
* June 1993
A list for a Linux tool like Wabi was set up
* May 1995
Beginnings of Win32 support
* January 1996
Word and Excel reported to run
* November 1997
Creation of web site
More of a Not-So-Short History
.. class:: incremental tiny
* 1998
Corel jumps on the Linux bandwagon
* 2001
CodeWeavers begins developing for Wine independently
Transgaming started by an ex-Corel employee
Lindows was formed that was simple to use and let users run Windows
* 2004
Another developers conference, sponsored by CodeWeavers
* June 17, 2008
Wine 1.0 was released
Some Features
.. class:: small
* Loads Windows 9x/NT/2000/XP, Windows 3.x and DOS programs and libraries
* “bug-for-bug” compatibility with Windows
* DirectX support
* OpenGL support
* Sound device interaction (ALSA, OSS, ARTS, JACK, libaudio)
* Networking
* Permits mixing of ELF (.so) and PE (.dll/.exe) binaries
The whole list
.. class:: handout
CodeWeavers employs the lead Wine developer, Alexandre Julliard, and has a
long history of contributing back to the project.
CrossOver (formerly CrossOver Office) now has Linux and Mac (x86) versions,
and recently launched a Gaming version which has a faster release cycle and
less emphasis on stability. CrossOver has Standard and Professional
versions. The professional version provides enhanced deployability and
manageability features for corporate users. The Standard version allows a
single user of a single machine. The Professional version allows multiple
Transgaming focuses on gaming. Cedega (formerly WineX) is a fork of the
last X11-licensed version of Wine and is proprietary. Transgaming has a bad
reputation for not contributing back to the Wine project, although they
initially promised to contribute their DirectX improvements. Cedega
includes licensed support for several types of CD-based copy protection.
“TransGaming currently gives back very little code to Wine. Cedega is
not ‘Wine with more gaming support’ — because Wine has had years of
development since Cedega was made, many games actually run better under
Wine than under Cedega. Currently, Wine has more advanced Direct3D
support than Cedega, but Cedega still has more advanced copy protection
support due tTransGaming’s licensing of (closed source) code from a
handful of copy protection companies. Unlike CrossOver, most
improvements to Wine don’t get into Cedega due to the license
differences between Cedega and Wine.”
* CrossOver Standard $39.95
* CrossOver Professional $69.95
* CrossOver Games $39.95
* Cedega 6 mo. $25
* Cedega 12 mo. $45
.. class:: incremental
* Wine
* CodeWeavers
* CrossOver Linux
* CrossOver Mac
* CrossOver Games
* Transgaming
* Cedega
* Cider
* ReactOS
How to Get Started
``wine ~/.wine/drive_c/windows/notepad.exe``
``wine "C:\windows\notepad.exe"``
A Note about ``WINEPREFIX``
.. class:: handout
(CrossOver has a similar convention called “bottles”.) This allows you to
segregate Windows programs from one another that require different
configurations or need to be kept in isolation so as not to threaten other
Windows programs. Note that this does make other prefixed directories
invisible to one another.
Previous to Wine 1.0 you had to run ``wineprefixcreate``, now it handles it
``WINEPREFIX=$HOME/games/warcraftiii wine notepad.exe``
.. class:: handout
It is sometimes necessary to create fake DLL files to trick many programs
that check for file existence to determine whether a particular feature
(such as Winsock and its TCP/IP networking) is available.
In case Wine complains about a missing DLL, you should check whether this
file is a publicly available DLL or a custom DLL belonging to your program
(by searching for its name on the internet).
You can copy your .ttf fonts into the ``c:\windows\fonts`` directory.
.. class:: incremental
* ``winecfg``
* ``regedit``
* ``system.reg`` contains ``HKEY_LOCAL_MACHINE``
* ``user.reg`` contains ``HKEY_CURRENT_USER``
* ``userdef.reg`` contains ``HKEY_USERS\.Default``
Running Wine
.. class:: handout
Wine will pass on your shell environment to the Windows program which is
useful if you want to set any environment variables. The exceptions to this
are the ``PATH``, ``SYSTEM``, and ``TEMP`` variables.
.. class:: incremental
* ``uninstaller``
* ``wine eject``
* ``wineboot``
* ``wine control``
* ``wineconsole``
* ``winefile``
* ``WINEDEBUG=-all``
* ``AUDIODEV=/dev/dsp2`` for OSS
Getting Out of Trouble
.. class:: incremental
* ``wineserver -k``
* ``killall -9 program.exe``
Solving Problems
.. class:: incremental
* AppDB:
* Use different Windows version settings
* Use different startup paths
* ``wine prg.exe`` and ``wine x:\\full\\path\\to\\prg.exe``
* Use different GUI modes
* Fiddle with DLL configuration
* ``WINEDEBUG=+loaddll``
Searching for Solutions
.. class:: incremental
* Google
* Wine FAQ:
* Wine Wiki:
* Frank’s Corner:
Helper Tools
.. class:: handout
An application-management tool for the GNOME desktop.
Script to install some basic components (typically Microsoft DLLs and
An application to ease the installation of Windows games using Wine. It
uses an online database of scripts to apply to different games that
need special configurations and if the game is not in the database, a
manual installation can be performed.
.. class:: incremental
* Wine-Doors_
* WineTricks_
* IEs4Linux_
* PlayOnLinux_
.. _Wine-Doors:
.. _WineTricks:
.. _IEs4Linux:
.. _PlayOnLinux:
.. vim:filetype=rst
Jump to Line
Something went wrong with that request. Please try again.