WINE

From ReactOS Wiki
Jump to: navigation, search

Wine is an Open Source implementation of the Windows API on top of X and Unix. It is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, although it can also use native Windows DLLs if they are available. 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, including Linux, FreeBSD, and Solaris.

Relation to ReactOS

ReactOS works with the WINE project to share as much programming effort as possible. ReactOS depends on Wine mainly for user mode DLLs. Where appropriate, patches to Wine are also submitted by the development team, and patch contributors are often directed to Wine if it is felt that the patches would benefit them.

However, due to architectural differences arising from Wine targetting the Linux platform, some of their DLLs may not be used on ReactOS without specific modifications.

Windows-like comparison.png

As an example, kernel32.dll and gdi32.dll have to be forked, since the Wine versions effectively redirect calls to the Linux kernel and X server respectively. More recently (November 2009) however a research effort has been made to bring the ReactOS architecture closer to Wine's in order that more of their code can be used without modifications. This is currently being done in the Arwinss branch.

Wine and hacks

For work of many apps Wine developers using hacks. In end of november-december of 2016 at implementation support of Word 2010 Hermes Belusca found one from it.

The code of Wine registry implementation (in the Wine server) allows anybody to create direct subkeys under HKEY_USERS (this is forbidden on a real NT implementation, or in ReactOS, since HKEY_USERS is a virtual registry key, under which real registry keys are loaded), subkeys that are only volatile (are not stored anywhere in a file). As a consequence, when the Word 2010 installation attempts to create/open a subkey under HKEY_USERS\S-1-5-20, even when S-1-5-20 does not exist (and it does not in Wine, since they do not have the special accounts implemented), this key is created on the fly, allowing for the installer to continue its normal route and ultimately succeed. However, as soon as the Word 2010 installer quits (and the Wine server exits), these registry keys just plainly vanish. As it may seem acceptable for Wine, this hack is not acceptable at all for ReactOS; and developer implemented proper implementation.

See also

External links