Wine 10.0: Wayland als Standard, neues Multimedia-Backend

Der Windows-Emulator Wine (kurz für Wine Is Not an Emulator) ist in Version 10.0 erschienen und bringt viele kleine Änderungen. Die Software zum Nutzen von Windows-Programmen unter Linux und macOS bietet standardmäßig aktivierte Wayland-Unterstützung, optimiert die Anzeige von Programmen und lässt ein neues Multimedia-Backend auf FFMPEG-Basis ausprobieren.

Nachdem bereits mit dem Endspurt der Entwickler für das Wine-10.0-Release gerechnet wurde, haben sie tatsächlich Nägel mit Köpfen gemacht. Die Release-Notes von Wine fassen die wichtigsten Änderungen in der neuen Version zusammen. Insgesamt gab es mehr als 6000 Änderungen, davon einige größere. Das Wine-Projekt hebt die Unterstützung für die ARM64EC-Schnittstelle (Apps für ARM-Prozessorarchitektur unter Windows 11) hervor, die zum bisherigen ARM64-Support (Windows 10 für ARM) aufschließt. Die Unterstützung von hybriden ARM64X-Modulen erlaubt zudem das Mischen der beiden Code-Formen – setzt allerdings eine experimentelle LLVM-Toolchain voraus. Außerdem haben die Entwickler die 64-bittige x86-Emulation für ARM64-Prozessorarchitekturen implementiert. Dafür müssen Interessierte jedoch selbst Hand anlegen: Wine bringt keine Emulationsbibliothek mit, sondern nutzt die, die im Registry-Schlüssel HKLM\Software\Microsoft\Wow64\amd64 angegeben wird. Der FEX-Emulator stellt die nötige Schnittstelle bereit, wenn er für ARM64EC kompiliert wird. Der ARM64-Support setzt ein System mit Page-Size 4K voraus, weil das Windows-Binärinterface das so spezifiziert – unter einem Kernel mit 16K- oder 64K-Pages funktioniert das (bislang) nicht.

Der Wayland-Treiber ist standardmäßig aktiv. Allerdings bevorzugt Wine 10.0 den X11-Treiber, sofern der ebenfalls aktiviert wurde – um die Nutzung von Wayland zu erzwingen, muss die DISPLAY-Umgebungsvariable gelöscht werden (unset). Pop-up-Fenster erscheinen in den meisten Fällen an der richtigen Stelle, außerdem unterstützt der Treiber nun auch OpenGL sowie automatische Tastenwiederholungen.

Allgemein soll die High-DPI-Unterstützung korrekter umgesetzt sein. Child-Windows von Apps können nun nicht nur OpenGL zum 3D-Rendern im X11-Backend nutzen, sondern auch Vulkan. Der Treiber unterstützt bis zu Version 1.4.303 der Spezifikation sowie die Videoerweiterungen. Die Direct3D-Unterstützung hat Feinschliff erhalten, ebenso die zugehörigen Hilfsbibliotheken. Optional können Wine-Nutzer einen neuen, noch experimentellen Modesettting-Mechanismus einsetzen. Anstatt die Bildschirmeinstellungen anzupassen, emuliert der die Änderungen vollständig. Wenn nötig, skaliert und füllt der Mechanismus Fenster auf, um auf die physische Anzeige zu passen. Wenn ein Prozess abstürzt, ohne die Bildschirmeinstellungen korrekt zurückzusetzen, werden sie nun auf die Standardeinstellungen zurückgestellt. Außerdem gibt es ein Systemsteuerungs-Applet "desk-cpl", mit dem sich die Bildschirmeinstellungen überprüfen und ändern lassen.

Als Alternative zum bestehenden GStreamer-Multimedia-Backend haben die Entwickler ein neues, optionales FFMPEG-basiertes Backend entwickelt. Es ist experimentell und bedarf noch einiger Anpassungen, insbesondere bei Wiedergabe mit D3D. Die Multimedia-Pipelines der Media Foundation sind inzwischen akkurater programmiert, was Apps zugutekommt, die auf individuelle Demuxing- und Decoding-Komponenten zugreifen. DirectMusic in Wine kann jetzt auch MIDI-Dateien laden.

Verbesserungen gab es zudem bei Internet- und Netzwerkunterstützung. Insbesondere MSHTML hat viele Änderungen erfahren und soll dadurch größere Kompatibilität aufweisen. Aufrufe von RPC und COM werden auch unter ARM64 vollständig unterstützt. Im Kernel haben die Entwickler zudem die Rechteerhöhung von Prozessen implementiert – Prozesse laufen standardmäßig als normaler Nutzer und können bei Bedarf auf Admin-Ebene erhöht werden. Da die Implementierung davon in Wine 9.0 kaputtging, wurde das asynchrone Warten auf Ereignisse von seriellen Schnittstellen neu programmiert. Neue Vektorerweiterungen wie AVX-512 werden ebenfalls unterstützt.

Die Eingabeverarbeitung der Eingabeaufforderung von Wine haben die Programmierer neu implementiert, um lange bestehende Probleme auszuräumen. Die Anwendung "sort" ist neu dabei. "wmic" hingegen hat einen interaktiven Modus erhalten. Die ODBC-Bibliothek erlaubt das Laden von Windows-ODBC-Treibern, zusätzlich zu den bislang unterstützten Unix-Treibern etwa mit libodbc. DirectPlay unterstützt jetzt auch Network-Sessions.

Der Wine-Fork Proton, den etwa die Spieleplattform Steam mitbringt, dürfte in Kürze auch auf die neue Version aktualisiert werden. Ebenso ist für CrossOver eine Aktualisierung zu erwarten.