An Introduction to the Wine
Project
The Wine Project Defined
Wine is an open source implementation of the
Microsoft® Windows® 95/Microsoft Windows
NT® application programming interfaces (API) that runs
on X Windows and Linux®. Wine provides libraries for
porting existing applications from Windows to Linux and provides a
program loader that lets Windows applications run on a Linux system
without having to be recompiled. While most of the development
effort is directed toward the Linux platform, UNIX®
variants, such as FreeBSD, OpenBSD, NetBSD, and Solaris are also
supported and some development work has been done for
SCO® UNIX OpenServer, SCO UNIXware, and IBM®
OS/2®.
The History of Wine
The Wine project was initiated by Bob Amstadt in 1993 to let
Windows 3.1 applications run under Linux. The project leadership
was later passed to Alexandre Julliard who continues to lead it,
with the programming emphasis on supporting Microsoft Windows
95/Microsoft Windows NT applications. The open source project has
grown to over 350,000 lines of code written by more than 140
developers worldwide. While statistics are difficult to determine,
an estimated 90,000 people currently use Wine.
Understanding How Wine Works
Wine takes a two channel approach to the program loader and code
libraries. As the program loader matures, it will let developers
make their existing Windows applications available on x86-based
Linux systems immediately without having to recompile. An
application running on Wine should perform the same way as an
application running on Windows because the Wine program loader
provides the API facilities that a Windows application expects
using the same hardware as Windows.
The program loader provides developers with a quick method for
making applications available under Linux; however, this approach
alone does not take full advantage of the features and strengths of
the Linux operating system. The second channel of Wine development
includes libraries that provide the required API functionality that
is expected from Windows libraries. The Wine libraries let
developers recompile their Windows applications to create native
Linux applications from the original code base without having to
make major modifications to the code. Once compiled as native Linux
applications, the applications can make use of Linux features, such
as enhanced performance, compatibility across different processors,
and, eventually, increased native user interface integration, which
lets the applications use graphic user interface calls to desktops,
such as KDE and GNOME.
The Current Status of
Wine
Wine currently supports more than 90% of API calls by the
ECMA-234 and Open32 specifications but is still under development.
Support for new API calls continues to be added and new releases of
Wine are frequently made available. Despite the extensive support
that has been developed, considerable work needs to be done to
support the diversity of applications that are available for the
Windows platform.
Since Wine is being developed by both volunteer and paid
developers, it is impossible to predict when the task will be
complete. However, it is important to note that completion is not
necessary in order for Wine to be useful to developers. As more
APIs are supported, more applications can become fully functional
using Wine. While complex applications will use more API calls, and
as such require that a greater percentage of the APIs be supported,
it is likely that Wine will provide the facilities necessary to run
applications as complex and diverse as WordPerfect® and
CorelDRAW®. Because Wine is a work in progress, it is
not ready for use by non-technical users. The speed with which the
Wine API expands and the number of applications it supports is
dependant on the number of contributing developers. Since Wine is
being developed under the open-source model, contributions by
additional developers are always welcomed and encouraged.
Myths and Rumors about Wine
Wine has been the subject of extensive discussion in the Linux
community yet remains misunderstood. Many believe that Wine is an
emulator and automatically assume it will perform poorly.
Traditionally, emulation has meant emulating one computer and its
operating system on another computer with another operating system.
For example, developers have tried emulating an x86 machine and the
Windows operating system on a PowerPC Macintosh with the Macintosh
operating system. Such emulation typically yields poor performance.
Because Wine is simply an alternate implementation of the Windows
API, rather than the emulation of a full machine and operating
system, it can provide application performance that is comparable
to the applications running on Windows on the same computer.
There has been some discussion as to whether Wine is a good
approach to making Windows-based applications available under
Linux. It is argued that nonnative Linux applications running
through a program loader make Linux an inferior platform to Windows
because the applications will not optimize strengths of Linux, they
do not look like native Linux applications, and they potentially
perform poorly. While the ability to use the program loader to run
Windows applications may provide a useful solution, many see the
program loader as a temporary solution until applications can be
recompiled using the Wine libraries to create native Linux
applications. Once the Wine libraries provide the functionality
comparable to the Windows API, there is little reason for
developers not to simultaneously release native Linux versions of
their Windows applications.
To be accepted as a desktop operating system, Linux must have a
variety of commercial applications for users to choose from. The
program loader makes Windows applications immediately available to
Linux users. The Wine libraries make releasing native Linux
versions of applications a simpler task for developers. Rather than
putting extensive effort into porting every application that
developers want to release under Linux, Wine consolidates the
effort so that many more applications can be ported with less
effort.
The last myth that must be addressed is that Wine will never be
able to run all Windows applications. This myth may be true in an
absolute sense, but may not be true in a practical sense. In an
environment with the complexity and history of DOS and Windows,
there will inevitably be applications that Wine does not support.
However, the vast majority of modern, commercial applications that
follow standard Windows programming techniques should eventually
recompile and run without difficulty through Wine. It is not
necessary to support all APIs for an application to run
successfully because most applications use only a subset of the
full Windows API. In addition, since Wine is completely open
source, developers can easily modify the code to solve specific
problems with individual applications.
Using Wine
Once Wine’s development reaches the level where most Windows
applications are supported, its use in mainstream computing is
relatively straightforward. The hardware requirements for processor
speed and memory are comparable to the same application running on
Windows.
Installing a Windows application to run on Linux requires users
to run the familiar SETUP.EXE program. Users can send a command to
start Wine and point it to the Windows .EXE file they wish to run.
For example, to run the Windows version of Quattro® Pro
using Wine requires a command line that resembles the following:
/usr/local/corel/quattro/qpw.exe. This command line can be added to
an icon on the desktop or on the menu of a Windows manager, which
makes accessing the application as easy as any native Linux
application.
Corel’s Contributions to the Wine
Project
Corel dedicated a team of paid engineers to the Wine project in
January 1999. This team has focused on adding functionality to Wine
that will let Corel applications, such as WordPerfect, CorelDRAW,
and Quattro Pro run on Linux and be ported to native Linux
applications. In the past, Corel relied on conventional porting
techniques to move some of its applications (Corel WordPerfect 8)
to Linux. This provided a fast way to get these applications to
Linux, but meant that porting had to be repeated with each new
version. Otherwise, development had to be maintained on two
separate code bases, which required considerably greater resources.
Although there is an up-front investment in time and energy
required to make Wine viable, once it reaches a high enough level,
the facilities it provides can be used repeatedly to port many
applications with minimal engineering effort. The time and cost
savings to Corel will be tremendous.
The Wine technology is a complement to Corel’s forthcoming
venture into the Linux distribution market.
About Corel Corporation
Corel Corporation is an internationally recognized developer of
award-winning graphics and business productivity applications.
Since its foundation in 1985, Corel has developed products known
for excellence and value that follow emerging trends in the
software industry. Committed to performance, compatibility, and
value. Corel develops products for Microsoft®
Windows®, Macintosh®, UNIX®, and
Linux® platforms and Java . Corel is renowned for
comprehensive, competitively priced products that have powerful
core applications and value-added utilities. Corel develops
market-leading products, such as the CorelDRAW® suite of
graphics applications and the WordPerfect® Office of
business tools, while continuing to meet the demands of the
corporate, retail, and academic markets.
Corel is headquartered in Ottawa, Canada. Corel’s products ship
in over 17 languages through a network of more than 160
distributors in 70 countries. Corel maintains several offices
throughout Canada and the United States. In addition Corel has
offices in over 18 countries worldwide. Corel’s common stock trades
on the NASDAQ Stock MarketK under the symbol COSFF and on the
Toronto Stock Exchange under the symbol COS.
Where Do I Get More Information?
Corel Corporate Headquarters
1600 Carling Avenue
Ottawa, Ontario
K1Z 8R7
Visit Corel’s Web site at www.corel.com or Corel’s Linux Web
site at linux.corel.com.
For general media inquiries, contact Corel’s public relations
department at the following email address: media@corel.ca
For more information about Wine technology, visit the following
Web sites: www.winehq.com or
http://winebin.netpedia.net/.
To participate in discussions about Wine, visit the news group
at: comp.emulators.ms-windows.wine.newsgroup.
Copyright © 1999 Corel Corporation. All rights
reserved.
INFORMATION IS PROVIDED BY COREL ON AN “AS IS” BASIS, WITHOUT
ANY OTHER WARRANTIES OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABLE QUALITY,
SATISFACTORY QUALITY, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE, OR THOSE ARISING BY LAW, STATUTE, USAGE OF TRADE, COURSE
OF DEALING OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS OF THE
INFORMATION RECEIVED IS ASSUMED BY YOU. WE SHALL HAVE NO LIABILITY
TO YOU OR ANY OTHER PERSON OR ENTITY FOR ANY INDIRECT, INCIDENTAL,
SPECIAL, OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, BUT NOT
LIMITED TO, LOSS OF REVENUE OR PROFIT, LOST OR DAMAGED DATA OR
OTHER COMMERCIAL OR ECONOMIC LOSS, EVEN IF WE HAVE BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES, OR THEY ARE FORESEEABLE. WE ARE
ALSO NOT RESPONSIBLE FOR CLAIMS BY A THIRD PARTY. OUR MAXIMUM
AGGREGATE LIABILITY TO YOU AND THAT OF OUR DEALERS AND SUPPLIERS
SHALL NOT EXCEED FORTY DOLLARS CANADIAN($40.00CDN). SOME
STATES/COUNTRIES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE
LIMITATIONS MAY NOT APPLY TO YOU.
Published June 1999
Corel, CorelDRAW, WordPerfect, and Quattro are trademarks or
registered trademarks of Corel Corporation or Corel Corporation
Limited.
Microsoft, Windows, and NT are registered trademarks of
Microsoft Corporation.
Macintosh and Power Macintosh are registered trademarks of Apple
Computer, Inc.
UNIX is a registered trademark of the OpenGroup.
Linux is a registered trademark of Linus Torvalds.
Java is a trademark of Sun Microsystems, Inc.
OS/2 is a registered trademark of IBM.
Copyright © 1999 Corel Corporation and Corel
Corporation Limited. Reprinted by permission.