Fast ein Jahr später haben wir nun Wine 7.0, die neue Hauptversion der Kompatibilitätsschicht, die aus einer Neuimplementierung der Windows-APIs für Unix und Unix-ähnliche Systeme besteht, was die Möglichkeit eröffnet, für Windows kompilierte Anwendungen auf Linux, macOS, FreeBSD usw. auszuführen.
Wine ist ein ziemlich altes Projekt, das im Laufe des letzten Jahrzehnts aufgrund der Verbreitung von Multiplattform-Anwendungen an Bedeutung verloren hat. Dies führte zu einer Zunahme der Anzahl von Anwendungen mit einer offiziellen Version für Linux. Mit dem Erscheinen von Proton rückte jedoch Wine wieder in den Mittelpunkt, das als eines der wertvollsten Werke des (Reverse) Engineering im Bereich freier Software angesehen werden kann.
Wine 7.0 bietet eine ganze Reihe neuer Funktionen, auch wenn einige davon angesichts der Erfolgsbilanz von Wine wie das Gleiche klingen mögen. Zunächst wurde die 64-Bit-Windows-on-Windows-Architektur (WoW64) eingeführt, die die Ausführung von 32-Bit-Windows-Anwendungen auf 64-Bit-Unix-Systemen ermöglicht.
Bis auf wenige Ausnahmen werden nun alle Module im PE-Format kompiliert. Die Maintainer hoffen, die verbleibenden Module in zukünftigen Wine-Releases zu konvertieren, was WoW64 ermöglichen wird, 32-Bit-Windows-Anwendungen auf 64-Bit-Unix auszuführen, ohne die 32-Bit-Unix-Bibliotheken installieren zu müssen.
Enthaltene DLL-Dateien werden nur geladen, wenn eine passende PE-Datei auf der Festplatte vorhanden ist, entweder eine echte Binärdatei oder ein Dummy-PE-Modul. Dadurch wird sichergestellt, dass die Anwendung immer eine gültige PE-Dateizuordnung sieht.
Bei den Themen ist „Light“ hinzugekommen, das sich zu „Blue“ und „Classic Blue“ gesellt und über WineCfg ausgetauscht werden kann. Ab Wine 7 unterstützen alle gängigen Steuerelemente Themen, die automatisch aktualisiert werden. Die enthaltenen Anwendungen unterstützen HiDPI ebenso wie die Themen.
Die Wine-Entwickler haben eine neue Win32u-Bibliothek in den Kernel-Teil für die Grafik- und Fensterverwaltung implementiert. Daher wurden große Teile der GDI32- und USER32-Bibliotheken in Win32u konvertiert. Der Vulkan-Treiber unterstützt bis zur Version 1.2.201 der Grafik-API, erste Unterstützung für Direct2D-Effekte wurde eingeführt und WindowsCodecs unterstützt nun die Dekodierung von Windows Media Photo und das DirectDraw Surface-Rendering.
Was Direct3D betrifft, so befindet sich der Vulkan-Renderer noch in der Entwicklung und sollte in den meisten Fällen und mit den Direct3D-Versionen 10 und 11 auf Augenhöhe mit dem alten OpenGL-Renderer funktionieren, obwohl er noch nicht standardmäßig aktiviert ist.
Eine weitere neue Funktion im Zusammenhang mit Direct3D ist die Unterstützung für mehrere Monitore, die es Ihnen in der Praxis ermöglicht, den Monitor zu wählen, auf dem eine Anwendung, die diese API verwendet, im Vollbildmodus projiziert wird, obwohl es wichtig ist, daran zu denken, dass Sie unter X11 xrandr 1.4 oder höher haben müssen. Andererseits erfordert die Unterstützung von Direct3D 12 in Wine 7.0 die Version 1.2 oder höher der VKD3D-Bibliothek.
Die Gamma-Anpassung wurde mit der DXGI-API implementiert, einer Komponente, die manchmal von Direct3D 10- und 11-Anwendungen verwendet wird, um die „Helligkeit“ des Bildschirms anzupassen. Darüber hinaus werden nun die folgenden Grafikkarten bei der Verwendung von Direct3D über Wine 7 korrekt erkannt: AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 und NVIDIA GT 1030.
Für die Audio- und Videowiedergabe wurden DirectShow und Media Foundation von GStreamer in einem einzigen Backend vereint, was die Implementierung neuer Decodierungs-APIs erleichtert. Der synchrone und asynchrone Objektleser für Windows Media wurde auf der Grundlage des WineGStreamer-Backends implementiert und die QuickTime-Dekodierungsbibliothek wurde entfernt, so dass GStreamer auch unter macOS eine Voraussetzung ist.
Das Human Interface Device (HID) ist jetzt vollständiger und die ‚winebus.sys‘ Treiber-Backends wurden für gerätebezogene HID-Berichte verbessert. Das neue DirectInput-Joystick-Backend nutzt die neuen HID-Funktionen und das Joystick-Bedienfeld wurde verbessert.
Die Mono-Engine wurde auf Version 7 mit einer Reihe bemerkenswerter Änderungen aktualisiert (insbesondere die verstärkte Nutzung von .NET Core), Unicode 14-Unterstützung für Internationalisierung wurde aufgenommen und der OpenCL-Wrapper unterstützt bis zu Version 1.2 der API.
So viel zu den Höhepunkten von Wein 7. Die betreffende Version der Kompatibilitätsschicht kann offiziell für Android, Ubuntu, Debian, Fedora und macOS aus dem Download-Bereich des Projekts bezogen werden, während die Builds für SUSE, Slackware und FreeBSD von den jeweiligen Communities gepflegt werden.
Interessierte finden alle Einzelheiten der Veröffentlichung in der offiziellen Ankündigung und den Veröffentlichungshinweisen.