Understanding 64bit implications and wine64

David Laight david at l8s.co.uk
Tue Feb 9 12:16:19 CST 2010

On Mon, Feb 08, 2010 at 11:27:07AM +0100, Joerg-Cyril.Hoehle at t-systems.com wrote:
> The wine64 challenge seems to let 32bit MS-windows apps work even
> though the UNIX side has to manage pointer addresses >2^32, i.e. above
> the lower 4GB address range.  Is there some address translation
> involved or only mmap'ing?
> What must the Wine developer know to write correct code for wine64?

A 32bit (i386) windows application binary can only run in a 32bit
Unix application [1].  In which case the Unix kernel will handle the
system call emulation and ensure that the only user-space virtual
addresses the application sees are 32bit (it may be able to give
the app almost 4G of user address space - instead of the usual 3G).

Wine may allow both 32bit and 64bit clients to talk to its server
process - and that may need care so that only fixed-size types are used.


[1] The instruction sets are different - the single byte opcodes for
inc/dec register are reallocated for other uses. So you cannot just
load 32bit code into a 64bit binary and expect anything sane to happen.

David Laight: david at l8s.co.uk

More information about the wine-devel mailing list