Nepedia
Back to Discover
Advanced Reader
💻

Wine (software)

technology Maturity 7-9 war conflict Next article →

This article covers sensitive topics: war_conflict. Parents can manage visibility in Parental Controls.

Wine is a compatibility layer designed to run software and games made for Microsoft Windows on Unix-like operating systems. These systems include Linux, macOS, and FreeBSD. Unlike other tools, Wine does not use code emulation or virtualization to function. Instead, it translates instructions in real-time so the host system can understand them. On Apple silicon Mac computers, the system uses Rosetta 2 to translate x86 code to ARM code.

Winecfg in Wine 10.0 applications screenshot
Winecfg in Wine 10.0 applications screenshot

This tool is essential for users who need specific Windows applications while using different operating systems.

To understand how Wine works, one must look at the Windows Application Programming Interface, or API. Most Windows programs rely on dynamic-link libraries, known as DLLs. These DLLs contain sub-routines that act as wrappers for system calls to the kernel. A typical program calls these DLLs, which then communicate with the Win32 subsystem. Wine implements the Windows application binary interface (ABI) entirely in user space. It uses a daemon called the wineserver to provide basic functionality and integrate with the X Window System.

PlayOnLinux-Screenshot
PlayOnLinux-Screenshot

Wine handles different types of libraries and graphics in specific ways. It allows for loading both Windows DLLs and Unix shared objects. For basic functions, Wine uses its own built-in versions of libraries like NTDLL, KERNEL32, GDI32, and USER32. For complex graphics, Wine uses translation layers. For example, WineD3D translates Direct3D and DirectDraw calls into OpenGL. As of 2019, Wine 4.0 also included a DirectX 12 implementation for the Vulkan API. This allows computer games to use the computer's graphics hardware effectively.

WineHQ ratings
WineHQ ratings

The history of Wine began in June 1993 through discussions on the Usenet network. Bob Amstadt and Eric Youngdale started the project to run Windows apps on Linux. The project was inspired by Sun Microsystems products like Wabi and the Public Windows Interface. Alexandre Julliard has led the project since 1994. Development is famously difficult because Microsoft does not always provide complete documentation for the Windows API. Developers must use reverse engineering to study undocumented low-level functions and obscure bugs.

History Of WineAppDB
History Of WineAppDB

This ensures that Wine can duplicate Windows behavior precisely.

Wine has reached significant milestones through decades of steady development. The project officially entered beta with version 0.9 on 25 October 2005. After 15 years of work, version 1.0 was finally released on 17 June 2008. Since then, the software has seen many updates, including version 9.0 on 16 January 2024. Development versions are now released roughly every two weeks. The project also maintains Wine-staging, which contains aggressive patches and experimental functions. These patches are often merged into the main WineHQ repository later.

Wine-solitaire-on-android
Wine-solitaire-on-android

Corporate support plays a major role in the survival of the Wine project. CodeWeavers is the main sponsor and employs Alexandre Julliard along with many other developers. They also create CrossOver, a supported version of Wine with proprietary components. Other companies like Google have provided support to ensure specific software runs well on Linux. Valve also works with CodeWeavers to develop Proton. Proton is a Wine-based compatibility layer specifically for running Microsoft Windows games on Linux-based systems. This partnership helps bring many high-end games to Linux users.

Because Wine focuses on long-term compatibility, many third-party tools have been created to help users. Some applications require extra tweaks to work correctly. Tools like Winetricks help automate the installation of necessary Microsoft DLLs and fonts. Other utilities like PlayOnLinux and Lutris ease the installation process for games. There are also specialized tools like Wineskin for macOS or Q4Wine for advanced setups. These tools do not replace Wine but rather act as helpful assistants for specific tasks. This ecosystem allows Wine to remain a powerful bridge between different computing worlds.

616 words

Where will your curiosity go next?

Keep exploring at your chosen reading level.

🖼️ Images & Media (5)
File:Winecfg in Wine 10.0 applications screenshot.png
Winecfg in Wine 10.0 applications screenshot.png
File:PlayOnLinux-Screenshot.png
PlayOnLinux-Screenshot.png
File:History Of WineAppDB.gif
History Of WineAppDB.gif
File:WineHQ ratings.svg
WineHQ ratings.svg
File:Wine-solitaire-on-android.jpg
Wine-solitaire-on-android.jpg
More to explore

🔬 Go deeper

More advanced topics to explore

🪜 Step back

Simpler topics to build understanding

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.