Windows-API-Nachbau: Wine 9.0 ermöglicht x86-Emulation auf ARM-Hosts
Das Wine-Team stellt die Arbeiten an WoW64 und an der Trennung zwischen Unix- und PE-Format fertig. Damit sind x86-Apps auf ARM-Hosts möglich.
Die aktuelle Version 9.0 des freien Windows-API-Nachbaus Wine ist erschienen. Sämtliche Umformungen und API-Übersetzungen, die notwendig sind, um Windows-Anwendungen auf Unix-artigen Systemen auszuführen, laufen damit über die Schnittstelle für NT-Systemaufrufe. Das Team schreibt: "Dies ist ein wichtiger Meilenstein und markiert den Abschluss der mehrjährigen Umstrukturierungsarbeiten zur Konvertierung der Module in das PE-Format und die Einführung einer angemessenen Grenze zwischen der Windows- und der Unix-Welt."
Aus dieser neuen Architektur von Wine ergeben sich für Nutzer direkt praktische Vorteile, an denen das Entwicklungsteam seit Jahren arbeitet. So schuf das Team bereits mit der Vorversion Wine 8.0 die Grundlage dafür, x86-Anwendungen auch auf ARM-Rechner auszuführen. Mit der "PE/Unix-Trennung" wird dies nun vollständig unterstützt.
Umgesetzt hat das Team dafür nun auch eine feste Schnittstelle zur Anbindung an entsprechende Emulatoren für diesen Zweck, da Wine selbst keine derartige Binärübersetzungsschicht bietet. Wine empfiehlt aber die Nutzung von Fex-Emu, das diese Schnittstelle bereits umsetze. Wine selbst kann derzeit in dem ARM64EC-Format erstellt werden, wobei es sich um die ARM-ABI von Windows für Hybridapps handelt. Hinzukommen soll die Unterstützung für ARM64X, das nativen ARM64-Code und ARM64EC-Code in einer Binärdatei bündeln können. Damit soll dann auch eine 64-Bit-x86-Emulation ermöglicht werden.
32-Bit-Apps auf 64-Bit-Systemen
Fast vollständig abgeschlossen hat das Wine-Team mit der aktuellen Version 9.0 auch Arbeiten, um 32-Bit-Anwendungen auch in einem 64-Bit-Betriebssystem auszuführen. Das ist vor allem für ältere Spiele und Anwendungen von Bedeutung ist und seit Wine 7.0 prinzipiell verfügbar ist. So enthalten nun sämtliche Module Unterstützung für WoW64, um mit 32-Bit-Code auch 64-Bit-Unix-Binärdateien aufzurufen.
In dem alten Modus waren dafür noch 32-Bit-Unix-Prozesse notwendig, was in dem neuen Modus eben entfällt. Standardmäßig aktiviert ist dieser Modus jedoch noch nicht, da diesem etwa die 16-Bit-Support fehlt und die Leistungseinschränkungen für OpenGL noch zu groß sind. Der neue Modus ermöglicht es jedoch erstmals wieder 32-Bit-Windows-Anwendungen auf aktuellen MacOS-Versionen auszuführen, die keine Unterstützung mehr für die 32-Bit-Unix-Prozesse haben.
Experimentell genutzt werden kann mit Wine 9.0 nun auch ein Wayland-Treiber, der laut Aussage der Entwickler schon viele wichtige Funktionen unterstützt. Die Beteiligten haben außerdem die Backends für Vulkan und WineD3D überarbeitet. Als Standardversion nutzt Wine nun die Angabe Windows 10 in den sogenannten Prefixes.