HOME

TheInfoList



OR:

Wine (formerly a
recursive Recursion (adjective: ''recursive'') occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathematics ...
backronym A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
for ''Wine Is Not an
Emulator In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use pe ...
'', now just "Wine") is a free and open-source compatibility layer that aims to allow
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
and computer games developed for Microsoft Windows to run on Unix-like
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s. Wine also provides a software library, named ''Winelib'', against which developers can compile Windows applications to help
port A port is a maritime facility comprising one or more wharves or loading areas, where ships load and discharge cargo and passengers. Although usually situated on a sea coast or estuary, ports can also be found far inland, such as H ...
them to Unix-like systems. Wine provides its compatibility layer for Windows
runtime system In computer programming, a runtime system or runtime environment is a sub-system that exists both in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile t ...
(also called runtime environment) which translates
Windows API The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
calls into
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
API calls, recreating the directory structure of Windows, and providing alternative implementations of Windows system libraries, system services through wineserver and various other components (such as
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft which was used in the Windows line of operating systems ( ...
, the Windows Registry Editor, and
msiexec Windows Installer (msiexec.exe, previously known as Microsoft Installer, codename Darwin) is a software component and application programming interface (API) of Microsoft Windows used for the installation, maintenance, and removal of software ...
). Wine is predominantly written using
black-box testing Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, ...
reverse-engineering, to avoid copyright issues. The selection of "Wine is Not an Emulator" as the name of the Wine Project was the result of a naming discussion in August 1993 and credited to David Niemi. There is some confusion caused by an early FAQ using ''Windows Emulator'' and other invalid sources that appear after the Wine Project name being set. No code emulation or virtualization occurs when running a Windows application under Wine. "Emulation" usually would refer to
execution Capital punishment, also known as the death penalty, is the state-sanctioned practice of deliberately killing a person as a punishment for an actual or supposed crime, usually following an authorized, rule-governed process to conclude that ...
of compiled code intended for one processor (such as
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
) by interpreting/recompiling software running on a different processor (such as PowerPC). While the name sometimes appears in the forms ''WINE'' and ''wine'', the project developers have agreed to standardize on the form ''Wine''. Wine is primarily developed for Linux and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, and there are, , well-maintained packages available for both platforms. In a 2007 survey by desktoplinux.com of 38,500 Linux desktop users, 31.5% of respondents reported using Wine to run Windows applications. This plurality was larger than all x86 virtualization programs combined, as well as larger than the 27.9% who reported not running Windows applications.


History

Bob Amstadt, the initial project leader, and Eric Youngdale started the Wine project in 1993 as a way to run Windows applications on
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
. It was inspired by two Sun Microsystems' products, the Wabi for the Solaris operating system, and the Public Windows Initiative, which was an attempt to get the
Windows API The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
fully reimplemented in the public domain as an
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
standard but rejected due to pressure from
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
in 1996. Wine originally targeted 16-bit applications for Windows 3.x, but focuses on 32-bit and 64-bit versions which have become the standard on newer operating systems. The project originated in discussions on
Usenet Usenet () is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it wa ...
in ews:comp.os.linux comp.os.linuxin June 1993.
Alexandre Julliard Alexandre Julliard (born 1970) is a computer programmer who is best known as the project leader for Wine, a compatibility layer to run Microsoft Windows programs on Unix-like operating systems. Julliard studied computer science at the Swiss Feder ...
has led the project since 1994. The project has proven time-consuming and difficult for the developers, mostly because of incomplete and incorrect documentation of the Windows API. While Microsoft extensively documents most Win32 functions, some areas such as file formats and protocols have no publicly available specification from Microsoft, and Windows also includes undocumented low-level functions, undocumented behavior and obscure bugs that Wine must duplicate precisely in order to allow some applications to work properly. Consequently, the Wine team has
reverse-engineered Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompli ...
many function calls and file formats in such areas as thunking. The Wine project originally released Wine under the same
MIT License The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license comp ...
as the X Window System, but owing to concern about proprietary versions of Wine not contributing their changes back to the core project, work as of March 2002 has used the LGPL for its licensing. Wine officially entered beta with version 0.9 on 25 October 2005. Version 1.0 was released on 17 June 2008, after 15 years of development. Version 1.2 was released on 16 July 2010, version 1.4 on 7 March 2012, version 1.6 on 18 July 2013 and version 1.8 on 19 December 2015. Development versions are released roughly every two weeks. Wine-staging is an independently maintained set of aggressive patches not deemed ready by WineHQ developers for merging into the Wine repository, but still considered useful by the wine-compholio
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
. It mainly covers experimental functions and bug fixes. Since January 2017, patches in wine-staging begins to be actively merged into the WineHQ upstream as wine-compholio transferred the project to Alistair Leslie-Hughes, a key WineHQ developer.


Corporate sponsorship

The main corporate sponsor of Wine is CodeWeavers, which employs Julliard and many other Wine developers to work on Wine and on CrossOver, CodeWeavers' supported version of Wine. CrossOver includes some application-specific tweaks not considered suitable for the upstream version, as well as some additional proprietary components. The involvement of Corel for a time assisted the project, chiefly by employing Julliard and others to work on it. Corel had an interest in porting WordPerfect Office, its
office suite Productivity software (also called personal productivity software or office productivity software) is application software used for producing information (such as documents, presentations, worksheets, databases, charts, graphs, digital painting ...
, to Linux (especially Corel Linux). Corel later cancelled all Linux-related projects after Microsoft made major investments in Corel, stopping their Wine effort. Other corporate sponsors include
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
, which hired CodeWeavers to fix Wine so Picasa ran well enough to be ported directly to Linux using the same binary as on Windows; Google later paid for improvements to Wine's support for Adobe Photoshop CS2. Wine is also a regular beneficiary of Google's Summer of Code program.


Design

The goal of Wine is to implement the
Windows API The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
s fully or partially that are required by programs that the users of Wine wish to run on top of a Unix-like system.


Basic architecture

The programming interface of Microsoft Windows consists largely of dynamic-link libraries (DLLs). These contain a huge number of wrapper sub-routines for the system calls of the kernel, the NTOS kernel-mode program (ntoskrnl.exe). A typical Windows program calls some Windows DLLs, which in turn calls user-mode gdi/user32 libraries, which in turn uses the kernel32.dll (win32 subsystem) responsible for dealing with the kernel through system calls. The system-call layer is considered private to Microsoft programmers as documentation is not publicly available, and published interfaces all rely on subsystems running on top of the kernel. Besides these, there are a number of programming interfaces implemented as services that run as separate processes. Applications communicate with user-mode services through RPCs. Wine implements the Windows application binary interface (ABI) entirely in
user space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
, rather than as a
kernel module In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and/o ...
. Wine mostly mirrors the hierarchy, with services normally provided by the kernel in Windows instead provided by a
daemon Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and Greek mythology, mythology and of later Hellenistic religion and Hell ...
known as the wineserver, whose task is to implement basic Windows functionality, as well as integration with the X Window System, and translation of
signals In signal processing, a signal is a function that conveys information about a phenomenon. Any quantity that can vary over space or time can be used as a signal to share messages between observers. The ''IEEE Transactions on Signal Processing'' ...
into native Windows exceptions. Although Wineserver implements some aspects of the Windows kernel, it is not possible to use native Windows drivers with it, due to Wine's underlying architecture.


Libraries and applications

Wine allows for loading both Windows DLLs and Unix
shared object In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subro ...
s for its Windows programs. Its built-in implementation of the most basic Windows DLLs, namely NTDLL,
KERNEL32 The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an over ...
, GDI32, and USER32, uses the shared object method because they must use functions in the host operating system as well. Higher-level libraries, such as WineD3D, are free to use the DLL format. In many cases users can choose to load a DLL from Windows instead of the one implemented by Wine. Doing so can provide functionalities not yet implemented by Wine, but may also cause malfunctions if it relies on something else not present in Wine. Wine tracks its state of implementation through automated
unit testing In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&md ...
done at every git commit.


Graphics and gaming

While most office software does not make use of complex GPU-accelerated graphics APIs, computer games do. To run these games properly, Wine would have to forward the drawing instructions to the host OS, and even translate them to something the host can understand. DirectX is a collection of Microsoft APIs for rendering, audio and input. As of 2019, Wine 4.0 contains a DirectX 12 implementation for Vulkan API, and DirectX 11.2 for OpenGL. Wine 4.0 also allows Wine to run Vulkan applications by handing draw commands to the host OS, or in the case of macOS, by translating them into the Metal API by
MoltenVK MoltenVK is a software library which allows Vulkan applications to run on top of Metal on Apple's macOS, iOS, and tvOS operating systems. It is the first software component to be released for the Vulkan Portability Initiative, a project to hav ...
. ; XAudio :, Wine 4.3 uses the FAudio library (and Wine 4.13 included a fix for it) to implement the
XAudio2 XAudio2 is a lower-level audio API for Microsoft Windows, Xbox 360 and Windows Phone 8, the successor to DirectSound on Windows and a supplement to the original XAudio on the Xbox 360. XAudio2 operates through the XAudio API on the Xbox 360, thr ...
audio API (and more). ; XInput and Raw Input : Wine, since 4.0 (2019), supports
game controller A game controller, gaming controller, or simply controller, is an input device used with video games or entertainment systems to provide input to a video game, typically to control an object or character in the game. Before the seventh generatio ...
s through its builtin implementations of these libraries. They are built as Unix shared objects as they need to access the controller interfaces of the underlying OS, specifically through SDL. ; Direct2D : Wine 4.0 supports Direct2D 1.2.


Direct3D

Much of Wine's DirectX effort goes into building WineD3D, a translation layer from Direct3D and
DirectDraw DirectDraw (ddraw.dll) is an API that used to be a part of Microsoft's DirectX API. DirectDraw is used to accelerate rendering of 2D graphics in applications. DirectDraw also allows applications to run fullscreen or embedded in a window such as m ...
API calls into OpenGL. As of 2019, this component supports up to DirectX 11. As of , Wine is good enough to run '' Overwatch'' with D3D11. Besides being used in Wine, WineD3D DLLs have also been used on Windows itself, allowing for older GPUs to run games using newer DirectX versions and for old DDraw-based games to render correctly. Some work is ongoing to move the Direct3D backend to Vulkan API. Direct3D 12 support in 4.0 is provided by a "vkd3d" subproject, and WineD3D has in 2019 been experimentally ported to use the Vulkan API. Another implementation, DXVK, translates Direct3D 9, 10, and 11 calls using Vulkan as well and is a separate project. Wine, when patched, can alternatively run Direct3D 9 API commands directly via a free and open-source Gallium3D State Tracker (aka Gallium3D GPU driver) without translation into OpenGL API calls. In this case, the Gallium3D layer allows a direct pass-through of DX9 drawing commands which results in performance improvements of up to a factor of 2. As of 2020, the project is named Gallium.Nine. It is available now as a separate standalone package and no longer needs a patched Wine version.


User interface

Wine is usually invoked from the command-line interpreter: wine program.exe.


winecfg

There is the utility winecfg that starts a graphical user interface with controls for adjusting basic options. It is a GUI configuration utility included with Wine. Winecfg makes configuring Wine easier by making it unnecessary to edit the registry directly, although, if needed, this can be done with the included registry editor (similar to Windows ''
regedit The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and ...
'').


Third-party applications

Some applications require more tweaking than simply installing the application in order to work properly, such as manually configuring Wine to use certain Windows DLLs. The Wine project does not integrate such workarounds into the Wine codebase, instead preferring to focus solely on improving Wine's implementation of the
Windows API The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
. While this approach focuses Wine development on long-term compatibility, it makes it difficult for users to run applications that require workarounds. Consequently, many third-party applications have been created to ease the use of those applications that do not work '' out of the box'' within Wine itself. The Wine wiki maintains a page of current and obsolete third-party applications. * ''Winetricks'' is a script to install some basic components (typically Microsoft DLLs and fonts) and tweak settings required for some applications to run correctly under Wine. It can fully automate the install of a number of applications and games, including applying any needed workarounds. Winetricks has a GUI. The Wine project will accept bug reports for users of Winetricks, unlike most third-party applications. It is maintained by Wine developer Austin English. * '' Q4Wine'' is an open GUI for advanced setup of Wine. * ''
Wine-Doors Wine (formerly a recursive backronym for ''Wine Is Not an Emulator'', now just "Wine") is a free and open-source compatibility layer that aims to allow application software and computer games developed for Microsoft Windows to run on Unix-like ...
'' is an application management tool for the GNOME desktop which adds functionality to Wine. Wine-Doors is an alternative to WineTools which aims to improve upon WineTools' features and extend on the original idea with a more modern design approach. * '' IEs4Linux'' is a utility to install all versions of Internet Explorer, including versions 4 to 6 and version 7 (in beta). * ''Wineskin'' is a utility to manage Wine engine versions and create wrappers for
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
. * ''
PlayOnLinux PlayOnLinux is a graphical frontend for the Wine software compatibility layer which allows Linux users to install Windows-based video games, Microsoft Office (2000 to 2010), Microsoft Internet Explorer, as well as many other applications such as ...
'' is an application to ease the installation of Windows applications (primarily games). There is also a corresponding Macintosh version called ''
PlayOnMac PlayOnMac is a free compatibility layer and emulator for macOS that allows installation and usage of video games and other software initially designed to run exclusively on Microsoft Windows. PlayOnMac is based on the open-source Wine project and ...
''. * ''
Lutris Lutris is a free and open source game manager for Linux-based operating systems developed and maintained by Mathieu Comandon and the community, released under the GNU General Public License. For games that require using Wine, community insta ...
'' is an open-source application to easily install Windows games on Linux. * ''
Bordeaux Bordeaux ( , ; Gascon oc, Bordèu ; eu, Bordele; it, Bordò; es, Burdeos) is a port city on the river Garonne in the Gironde department, Southwestern France. It is the capital of the Nouvelle-Aquitaine region, as well as the prefect ...
'' is a proprietary Wine GUI configuration manager that runs winelib applications. It also supports installation of third-party utilities, installation of applications and games, and the ability to use custom configurations. ''Bordeaux'' currently runs on Linux, FreeBSD, PC-BSD, Solaris, OpenSolaris, OpenIndiana, and macOS computers. *
Bottles
' is an open-source graphical Wine prefix and runners manager for Wine based on GTK. It provides a repository-based dependency installation system and bottle versioning to restore a previous state. * ''WineGUI'' is a free and open-source graphical interface to manage Wine. It allows you to easily create Wine bottles and install Windows applications or games.


Functionality

The developers of the Direct3D portions of Wine have continued to implement new features such as pixel shaders to increase game support. Wine can also use native DLLs directly, thus increasing functionality, but then a license for Windows is needed unless the DLLs were distributed with the application itself. Wine also includes its own open-source implementations of several Windows programs, such as '' Notepad'', '' WordPad'', '' Control Panel'', ''
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft which was used in the Windows line of operating systems ( ...
'', and '' Windows Explorer''. The Wine Application Database (AppDB) is a community-maintained on-line database about which Windows programs works with Wine and how well they work.


Backward compatibility

Wine ensures good
backward compatibility Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especiall ...
with legacy Windows applications, including those written for Windows 3.1x. Wine can mimic different Windows versions required for some programs, going as far back as Windows version 2.0. However, Windows 1.x and Windows 2.x support was removed from Wine development version 1.3.12. If DOSBox is installed on the system (see below on MS-DOS), Wine development version 1.3.12 and later nevertheless show the "Windows 2.0" option for the Windows version to mimic, but Wine still will not run most Windows 2.0 programs because MS-DOS and Windows functions are not currently integrated. Backward compatibility in Wine is generally superior to that of Windows, as newer versions of Windows can force users to upgrade legacy Windows applications, and may break abandoned software forever as there is nobody adjusting the program for the changes in the operating system. In many cases, Wine can offer better legacy support than newer versions of Windows with "Compatibility Mode". Wine can run 16-bit Windows programs (
Win16 The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
) on a 64-bit operating system, which uses an x86-64 (64-bit) CPU, a functionality not found in 64-bit versions of Microsoft Windows. WineVDM allows 16-bit Windows applications to run on 64-bit versions of Windows. Wine partially supports Windows console applications, and the user can choose which backend to use to manage the console (choices include raw streams,
curses A curse (also called an imprecation, malediction, execration, malison, anathema, or commination) is any expressed wish that some form of adversity or misfortune will befall or attach to one or more persons, a place, or an object. In particular ...
, and user32). When using the raw streams or curses backends, Windows applications will run in a Unix terminal.


64-bit applications

Preliminary support for 64-bit Windows applications was added to Wine 1.1.10, in December 2008. , the support is considered stable. The two versions of Wine are built separately, and as a result only building wine64 produces an environment only capable of running x86-64 applications. , Wine has stable support for a WoW64 build, which allows both 32-bit and 64-bit Windows applications to run inside the same Wine instance. To perform such a build, one must first build the 64-bit version, and then build the 32-bit version referencing the 64-bit version. Just like Microsoft's WoW64, the 32-bit build process will add parts necessary for handling 32-bit programs to the 64-bit build. This functionality is seen from at least 2010.


MS-DOS

Early versions of Microsoft Windows run on top of MS-DOS, and Windows programs may depend on MS-DOS programs to be usable. Wine does not have good support for MS-DOS, but starting with development version 1.3.12, Wine tries running MS-DOS programs in DOSBox if DOSBox is available on the system. However, due to a bug, current versions of Wine incorrectly identify Windows 1.x and Windows 2.x programs as MS-DOS programs, attempting to run them in DOSBox (which does not work).


Winelib

Wine provides Winelib, which allows its shared-object implementations of the Windows API to be used as actual libraries for a Unix program. This allows for Windows code to be built into native Unix executables. Since October 2010, Winelib also works on the
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
platform.


Non-x86 architectures

Support for Solaris
SPARC SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system develope ...
was dropped in version 1.5.26.


ARM, Windows CE, and Windows RT

Wine provides some support for
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
(as well as ARM64/AArch64) processors and the Windows flavors that run on it. , Wine can run ARM/Win32 applications intended for unlocked
Windows RT Windows RT is a mobile operating system developed by Microsoft. It is a version of Windows 8 or Windows 8.1 built for the 32-bit ARM architecture (ARMv7). First unveiled in January 2011 at Consumer Electronics Show, the Windows RT 8 operat ...
devices (but not Windows RT programs).
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system subfamily developed by Microsoft as part of its Windows Embedded family of products. Unlike Windows Embedded Standard, which is base ...
support (either x86 or ARM) is missing, but an unofficial, pre-alpha proof-of-concept version called WineCE allows for some support.


Wine for Android

On 3 February 2013 at the FOSDEM talk in Brussels,
Alexandre Julliard Alexandre Julliard (born 1970) is a computer programmer who is best known as the project leader for Wine, a compatibility layer to run Microsoft Windows programs on Unix-like operating systems. Julliard studied computer science at the Swiss Feder ...
demonstrated an early demo of Wine running on Google's Android operating system. Experimental builds of WINE for Android (x86 and ARM) were released in late 2017. It has been routinely updated by the official developers ever since. The default builds do not implement cross-architecture emulation via
QEMU QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's central processing unit, processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it t ...
, and as a result ARM versions will only run ARM applications that use the Win32 API.


Microsoft applications

Wine, by default, uses specialized Windows builds of Gecko and Mono to substitute for Microsoft's
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft which was used in the Windows line of operating systems ( ...
and
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
. Wine has built-in implementations of JScript and VBScript. It is possible to download and run Microsoft's installers for those programs through winetricks or manually. Wine is not known to have good support for most versions of Internet Explorer (IE). Of all the reasonably recent versions, Internet Explorer 8 for Windows XP is the only version that reports a usable rating on Wine's AppDB, out-of-the-box. However Google Chrome gets a gold rating (as of Wine 5.5-staging), and Microsoft's IE replacement web browser Edge, is known to be based on that browser (after switching from Microsoft's own rendering engine). Winetricks offer auto-installation for Internet Explorer 6 through 8, so these versions can be reasonably expected to work with its built-in workarounds. An alternative for installing Internet Explorer directly is to use the now-defunct IEs4Linux. It is not compatible with the latest versions of Wine, and the development of IEs4Linux is inactive.


Other versions of Wine

The core Wine development aims at a correct implementation of the Windows API as a whole and has sometimes lagged in some areas of compatibility with certain applications. Direct3D, for example, remained unimplemented until 1998, although newer releases have had an increasingly complete implementation.


CrossOver

CodeWeavers markets CrossOver specifically for running Microsoft Office and other major Windows applications, including some games. CodeWeavers employs
Alexandre Julliard Alexandre Julliard (born 1970) is a computer programmer who is best known as the project leader for Wine, a compatibility layer to run Microsoft Windows programs on Unix-like operating systems. Julliard studied computer science at the Swiss Feder ...
to work on Wine and contributes most of its code to the Wine project under the LGPL. CodeWeavers also released a new version called CrossOver Mac for Intel-based Apple Macintosh computers on 10 January 2007. As of 2012, CrossOver includes the functionality of both the CrossOver Games and CrossOver Pro lines therefore CrossOver Games and CrossOver Pro are no longer available as single products. CrossOver Games was optimized for running Windows
video game Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This fee ...
s. Unlike CrossOver, it didn't focus on providing the most stable version of Wine. Instead, experimental features are provided to support newer games.


WINE@Etersoft

The
Russia Russia (, , ), or the Russian Federation, is a transcontinental country spanning Eastern Europe and Northern Asia. It is the largest country in the world, with its internationally recognised territory covering , and encompassing one-eig ...
n company Etersoft has been developing a proprietary version of Wine since 2006. WINE@Etersoft supports popular Russian applications (for example, 1C:Enterprise by
1C Company 1C Company (russian: Фирма «1С», ) is a Russian software developer, distributor and publisher based in Moscow. It develops, manufactures, licenses, supports and sells computer software, related services and video games. In Russia, 1C is c ...
).


Proton

On 21 August 2018,
Valve A valve is a device or natural object that regulates, directs or controls the flow of a fluid (gases, liquids, fluidized solids, or slurries) by opening, closing, or partially obstructing various passageways. Valves are technically fitting ...
announced a new variation of Wine, named Proton, designed to integrate with the Linux version of the company's Steam software (including Steam installations built into their Linux-based
SteamOS SteamOS is a Linux distribution developed by Valve. It is open source with some closed source components and is the primary operating system for Steam Machines and the Steam Deck. The initial versions of SteamOS, versions 1.0 and 2.0, were ba ...
operating system and Steam Machine computers). Valve's goal for Proton is to enable Steam users on Linux to play games which lack a native Linux port (particularly back-catalog games), and ultimately, through integration with Steam as well as improvements to game support relative to mainline Wine, to give users "the same simple plug-and-play experience" that they would get if they were playing the game natively on Linux. Proton entered public beta immediately upon being announced. Valve had already been collaborating with CodeWeavers since 2016 to develop improvements to Wine's gaming performance, some of which have been merged to the upstream Wine project. Some of the specific improvements incorporated into Proton include
Vulkan Vulkan is a low- overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. Vulkan is intended to offer higher perfor ...
-based Direct3D 9, 10, 11, and 12 implementations via vkd3d, DXVK, and D9VK multi-threaded performance improvements via esync, improved handling of fullscreen games, and better automatic game controller hardware support. Proton is fully open-source and available via GitHub.


Other projects using Wine source code

Other projects using Wine source code include: * OTVDM, a 16-bit app compatibility layer for 64-bit Windows. * ReactOS, a project to write an operating system compatible with Windows NT versions 5.x and up (which includes Windows 2000 and its successors) down to the device driver level. ReactOS uses Wine source code considerably, but because of architectural differences, ReactOS code (such as DLLs written specifically for it, like ntdll, user32, kernel32, gdi32, and advapi) is not generally reused in Wine. In July 2009, Aleksey Bragin, the ReactOS project lead, started a new ReactOS branch called Arwinss, and it was officially announced in January 2010. Arwinss is an alternative implementation of the core Win32 components, and uses mostly unchanged versions of Wine's user32.dll and gdi32.dll. * WineBottler, a wrapper around Wine in the form of a normal Mac application. It manages multiple Wine configurations for different programs in the form of "bottles." * ''Wineskin'', an open source Wine GUI configuration manager for
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
. Wineskin creates a wrapper around Wine in the form of a normal Mac Application. The wrapper can also be used to make a distributable "port" of software. * Odin, a project to run Win32 binaries on
OS/2 OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 r ...
or convert them to OS/2 native format. The project also provides the Odin32 API to compile Win32 programs for OS/2. * Virtualization products such as Parallels Desktop for Mac and VirtualBox use WineD3D to make use of the GPU. * WinOnX, a commercial package of Wine for macOS that includes a GUI for adding and managing applications and virtual machines. * WineD3D for Windows, a compatibility wrapper which emulates old Direct3D versions and features that were removed by Microsoft in recent Windows releases, using OpenGL. This sometimes gets older games working again.


Discontinued

* Cedega / WineX: TransGaming Inc. (now Findev Inc. since the sale of its software businesses) produced the proprietary Cedega software. Formerly known as WineX, Cedega represented a
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
from the last MIT-licensed version of Wine in 2002. Much like CrossOver Games, TransGaming's Cedega was targeted towards running Windows video games. On 7 January 2011, TransGaming Inc. announced continued development of Cedega Technology under the GameTree Developer Program. TransGaming Inc. allowed members to keep using their Cedega ID and password until 28 February 2011. * Cider: TransGaming also produced Cider, a library for Apple–Intel architecture Macintoshes. Instead of being an end-user product, Cider (like Winelib) is a wrapper allowing developers to adapt their games to run natively on Intel Mac without any changes in source code. *
Darwine Wine (formerly a recursive backronym for ''Wine Is Not an Emulator'', now just "Wine") is a free and open-source compatibility layer that aims to allow application software and computer games developed for Microsoft Windows to run on Unix-like ...
: an outdated port of the Wine libraries to Darwin and to macOS for both the PowerPC and Intel x86 architectures. All patches for the x86 version were merged back into the main branch of Wine in 2009. Development on the PPC version was abandoned (and in 2020 Wine 5.11 dropped support for PowerPC.). Mike Kronenberg previously created the WineHelper for Darwine to add a GUI and macOS style app for interacting with Wine, which was later replaced by WineBottler. Darwine now provides macOS compatible packages compiled from the Wine repository. * : a project attempting to allow any program designed for any operating system to be run without the need to actually install any other operating system. * Pipelight: a custom version of Wine (wine-compholio) that acts as a wrapper for Windows
NPAPI Netscape Plugin Application Programming Interface (NPAPI) was an application programming interface (API) of the web browsers that allows plugins to be integrated. Initially developed for Netscape browsers, starting in 1995 with Netscape Navigato ...
plugins within Linux browsers. This tool permits Linux users to run Microsoft Silverlight, the Microsoft equivalent of Adobe Flash, and the Unity web plugin, along with a variety of other NPAPI plugins. The project provides an extensive set of patches against the upstream Wine project, some of which were approved and added to upstream Wine. Pipelight is largely obsolete, as modern browsers no longer support NPAPI plugins and Silverlight has been deprecated by Microsoft.


Reception

The Wine project has received a number of technical and philosophical complaints and concerns over the years.


Security

Because of Wine's ability to run Windows binary code, concerns have been raised over native Windows viruses and malware affecting Unix-like operating systems as Wine can run limited malware made for Windows. A 2018 security analysis found that 5 out of 30 malware samples were able to successfully run through Wine, a relatively low rate that nevertheless posed a security risk. For this reason the developers of Wine recommend never running it as the superuser. Malware research software such as ZeroWine runs Wine on Linux in a virtual machine, to keep the malware completely isolated from the host system. An alternative to improve the security without the performance cost of using a virtual machine, is to run Wine in an LXC container, as Anbox software is doing by default with Android. Another security concern is when the implemented specifications are ill-designed and allow for security compromise. Because Wine implements these specifications, it will likely also implement any security vulnerabilities they contain. One instance of this problem was the 2006 Windows Metafile vulnerability, which saw Wine implementing the vulnerable SETABORTPROC escape.


Wine vs. native Unix applications

A common concern about Wine is that its existence means that vendors are less likely to write native Linux, macOS, and BSD applications. As an example of this, it is worth considering IBM's 1994 operating system,
OS/2 Warp OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 re ...
. An article describes the weaknesses of OS/2 which killed it, the first one being: However, OS/2 had many problems with end user acceptance. Perhaps the most serious was that most computers sold already came with DOS and Windows, and many people didn't bother to evaluate OS/2 on its merits due to already having an operating system. "Bundling" of DOS and Windows and the chilling effect this had on the operating system market frequently came up in '' United States v. Microsoft Corporation''. The Wine project itself responds to the specific complaint of "encouraging" the continued development for the Windows API on one of its wiki pages: Also, the Wine Wiki page claims that Wine can help break the chicken-and-egg problem for
Linux on the desktop Besides the Linux distributions designed for general-purpose use on desktops and servers, distributions may be specialized for different purposes including computer architecture support, embedded systems, stability, security, localization to a spec ...
: The use of Wine for gaming has proved specifically controversial in the Linux community, as some feel it is preventing, or at least hindering, the further growth of native Linux gaming on the platform.


Microsoft

Until 2020,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
had not made any public statements about Wine. However, the Windows Update software will block updates to Microsoft applications running in Wine. On 16 February 2005, Ivan Leo Puoti discovered that Microsoft had started checking the
Windows Registry The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and ...
for the Wine configuration key and would block the Windows Update for any component. As Puoti noted: "It's also the first time Microsoft acknowledges the existence of Wine." In January 2020, Microsoft cited Wine as a positive consequence of being able to reimplement APIs, in its amicus curiae brief for '' Google LLC v. Oracle America, Inc.''


See also

* Anbox * Columbia Cycada * Darling (software) * Executor (software) *
List of free and open-source software packages This is a list of free and open-source software packages, computer software licensed under free software licenses and open-source licenses. Software that fits the Free Software Definition may be more appropriately called free software; the GNU ...
* Linux kernel API *
Mono (software) Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many softw ...
*
PlayOnLinux PlayOnLinux is a graphical frontend for the Wine software compatibility layer which allows Linux users to install Windows-based video games, Microsoft Office (2000 to 2010), Microsoft Internet Explorer, as well as many other applications such as ...
*
PlayOnMac PlayOnMac is a free compatibility layer and emulator for macOS that allows installation and usage of video games and other software initially designed to run exclusively on Microsoft Windows. PlayOnMac is based on the open-source Wine project and ...
* ReactOS * Windows Interface Source Environment *
Windows Subsystem for Linux Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
*
WineGUI Wine (formerly a recursive backronym for ''Wine Is Not an Emulator'', now just "Wine") is a free and open-source compatibility layer that aims to allow application software and computer games developed for Microsoft Windows to run on Unix-like ...


References


Further reading


Jeremy White's Wine Answers
Slashdot ''Slashdot'' (sometimes abbreviated as ''/.'') is a social news website that originally advertised itself as "News for Nerds. Stuff that Matters". It features news stories concerning science, technology, and politics that are submitted and eval ...
interview with Jeremy White of CodeWeavers * * Appointment of the Software Freedom Law Center as legal counsel to represent the Wine project
Wine: Where it came from, how to use it, where it's going
– a work by Dan Kegel


External links

* {{DEFAULTSORT:Wine (Software) 1993 software Compatibility layers Computing platforms Cross-platform software Free software programmed in C Free system software Linux APIs Linux emulation software Software using the LGPL license