Die offizielle Veröffentlichung der stabilen Version fand am 21. Januar 2020 statt. — ein freies Tool zum Ausführen von nativen Windows-Programmen in einer UNIX-Umgebung. Es handelt sich um eine alternative, freie Implementierung der Windows-API. Der rekursive Akroynm WINE steht für "Wine Is Not an Emulator".
Hinter dieser Version stehen etwa ein Jahr Entwicklung und mehr als 7400 einzelne Änderungen. Der leitende Entwickler Alexandre Julliard hebt vier hervor:
- Unterstützung von Modulen im PE-Format. Dies löst Probleme mit verschiedenen Kopierschutzmechanismen, die eine Überprüfung der systemeigenen Module auf der Festplatte und im Arbeitsspeicher durchführen.
- Unterstützung mehrerer Monitore und mehrerer GPUs, einschließlich dynamischer Anpassung der Einstellungen.
- Die Neuimplementierung von XAudio2 basierend auf dem FAudio-Projekt, einer offenen Implementierung von DirectX-Soundbibliotheken. Der Übergang zu FAudio ermöglicht eine höhere Audioqualität in Spielen, die Nutzung von Lautstärkemischung, erweiterten Audioeffekten und mehr.
- Unterstützung für Vulkan 1.1.
Mehr Details zu den wichtigsten Neuerungen.
PE-Module
Bei Vorhandensein eines MinGW-Compilers werden die meisten Wine-Module jetzt im PE-Format (Portable Executable, binäres Windows-Format) anstelle von ELF erstellt.
PE-Dateien werden jetzt in das Verzeichnis kopiert ~/.wine anstatt Dummy-DLL-Dateien zu verwenden, was die Anwendungen echteren Windows-Installationen ähnlicher macht.
Der Konvertierungsprozess für alle Module in das PE-Format ist noch nicht abgeschlossen. Die Arbeit geht weiter.
Grafiksubsystem
Wie bereits erwähnt, wurde die Unterstützung für mehrere Monitore und Grafikkarten hinzugefügt.
Der Vulkan-Treiber wurde auf die Spezifikationen Vulkan 1.1.126 aktualisiert.
Zudem unterstützt die WindowsCodecs-Bibliothek jetzt zusätzliche Rasterformate, einschließlich solcher mit indizierter Palette.
Direct3D
Vollbildanwendungen in Direct3D blockieren jetzt den Aufruf des Bildschirmschoners.
Für DXGI-Anwendungen wurde die Möglichkeit implementiert, zwischen dem Vollbild- und dem Fenstermodus mit der Standardkombination Alt+Enter zu wechseln.
Die Funktionen von Direct3D 12 wurden erweitert: Unterstützung für den Wechsel zwischen Vollbild- und Fenstermodus, Bildschirmmodusänderungen, skalierte Darstellungen und Austauschintervalle für die Darstellungspuffer. All diese Funktionen wurden bereits in den vorherigen Versionen der Direct3D-API implementiert.
Die Teilnehmer des Projekts haben gründlich gearbeitet und buchstäblich Hunderte von Fehlern behoben, wodurch die Verarbeitung von Wine in verschiedenen Grenzfällen verbessert wurde. Dazu gehören das Sampling von 2D-Ressourcen in 3D-Samplern und umgekehrt, die Anwendung von Werten, die außerhalb der zulässigen Bereiche für Transparenz- und Tiefentests liegen, das Rendern mit reflektierenden Texturen und Puffern sowie die Verwendung von fehlerhaften Clippern (DirectDraw-Objekt) und vieles mehr.
Der benötigte Adressraum beim Laden von 3D-Texturen, die mit dem S3TC-Verfahren komprimiert sind, wurde reduziert (statt vollständig zu laden, werden die Texturen in Stücke geladen).
Für alte DirectDraw-Anwendungen wurden verschiedene Verbesserungen und Korrekturen im Zusammenhang mit der Lichtberechnung vorgenommen.
Die Datenbank der für Direct3D erkannten Grafikkarten wurde erweitert.
Netzwerk und Kryptografie
Die Gecko-Engine wurde auf Version 2.47.1 aktualisiert, um moderne Tools zu unterstützen. Eine Reihe neuer HTML-APIs wurde implementiert.
In MSHTML wurde die Unterstützung von SVG-Elementen implementiert.
Es wurden viele neue VBScript-Funktionen hinzugefügt (z. B. Fehler- und Ausnahmebehandler).
Es wurde die Möglichkeit implementiert, HTTP-Proxy-Einstellungen über DHCP zu erhalten.
Im kryptografischen Bereich wird die Unterstützung für kryptografische Schlüssel auf Basis elliptischer Kurven (ECC) über GnuTLS implementiert, sowie die Möglichkeit, Schlüssel und Zertifikate aus PFX-Dateien zu importieren. Zudem wird die Passwort-basierten Schlüsselgenerierungsschema PBKDF2 unterstützt.
Adobe Photoshop CS6 unter Wine
Weitere bedeutende Neuerungen
- Unterstützung von Spinlocks im NT-Kernel.
- Dank des Ablaufs des Patents für die DXTn- und S3-Texturkompression ist es möglich, diese in die Standardimplementierung aufzunehmen.
- Unterstützung für Plug-and-Play-Treiber.
- Verschiedene Verbesserungen von DirectWrite.
- Verbesserte Unterstützung für das Windows Media Foundation API.
- Bessere Synchronisation von primitiven Daten durch die Implementierung auf Futexen.
- Gemeinsame Nutzung von Wine-Mono zur Einsparung von Speicherplatz anstelle der Open-Source-Implementierung von .NET für jede Instanz.
~/.wine. - Unterstützung für Unicode 12.0 und 12.1.
- Implementierung eines ersten HTTP-Dienstes (HTTP.sys) als Ersatz für die Winsock API und IIS, wodurch die Leistung über der der Windows Sockets API liegt.
- Bessere Kompatibilität mit Windows-Debuggern.
- Verbesserte Unterstützung für LLVM MinGW und Optimierungen für das Cross-Compiling mit WineGCC.
Verbessern Sie das Benutzererlebnis durch das überarbeitete Interface. Beispielsweise werden minimierte Fenster jetzt über die Titelleiste und nicht mehr über Symbole im Windows 3.1-Stil angezeigt. Die Unterstützung für Gaming-Controller wurde verbessert, einschließlich eines hat switch, Lenkrads und Pedalen.
In Wine wurden die eingebauten Decoder für AVI, MPEG-I und WAVE entfernt. Stattdessen kommen nun die systemeigenen GStreamer oder QuickTime zum Einsatz.
Die Möglichkeit, den Debugger aus Visual Studio zur Remote-Debugging von in Wine ausgeführten Anwendungen zu verwenden, wurde hinzugefügt. Teilweise wurde die DBGENG-Bibliothek (Debug Engine) implementiert. Abhängigkeiten von libwine wurden aus den Windows-Builds entfernt.
Um die Leistung zu optimieren, wurden verschiedene zeitbasierte Funktionen auf hochleistungsfähige systemeigene Timer-Funktionen umgestellt, was die Overheadkosten in der Render-Schleife vieler Spiele senkte. Es wurden weitere Leistungsoptimierungen vorgenommen.
Die vollständige Änderungsübersicht finden Sie unter .
,
Auf der Website führt eine Datenbank von Windows-Anwendungen, die mit Wine kompatibel sind. Hier sind die führenden Anwendungen nach :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Aktuell
- Magic: The Gathering Online 4.x
Es kann angenommen werden, dass diese Anwendungen in Wine am häufigsten gestartet werden.
Hinweis: Die Veröffentlichung von Wine 5.0 ist Józef Kucia gewidmet, der tragischerweise im August 2019 im Alter von 30 Jahren starb, während er eine Höhle im Süden Polens erforschte. Józef war ein wichtiger Mitwirkender an der Entwicklung von Direct3D Wine sowie Hauptautor des Projekts. Während seiner Arbeit an Wine hat er mehr als 2500 Patches beigetragen.

Quelle: habr.com
