The Wine Staging release 2.10 is now available.
What's new in this release:
- Preloader for macOS.
- ntoskrnl and winedevice improvements.
- Various smaller bug fixes and improvements.
Starting with this release Wine Staging contains an experimental preloader for macOS. This feature is required to load applications, which expect a very specific memory layout in the process address space.
When a process is started on Windows, the kernel maps the executable into the memory and then hands over the control to ntdll, which loads all required DLLs. Since the executable is the first thing that is mapped into the memory, it can basically request to be loaded at any memory address it wants, the address space is mostly empty at this point. When using Wine, things look a bit different. Wine is not a kernel module and needs to be loaded into the address space first, before it can load the Windows executable. When you have bad luck, your host system maps Wine or any of its dependencies (e.g. libc) inside of an address range that the Windows executable wants to use.