Stabile Version von Wine 8.0

Nach einem Jahr Entwicklung und 28 experimentellen Versionen wurde eine stabile Version der offenen Implementierung der Win32-API – Wine 8.0, vorgestellt, die mehr als 8600 Änderungen enthielt. Der wichtigste Erfolg der neuen Version markiert den Abschluss der Arbeiten zur Übersetzung von Wine-Modulen in das Format.

Wine hat die volle Funktionsfähigkeit von 5266 (vor einem Jahr 5156, vor zwei Jahren 5049) Programmen für Windows bestätigt, weitere 4370 (vor einem Jahr 4312, vor zwei Jahren 4227) Programme funktionieren einwandfrei mit zusätzlichen Einstellungen und externen DLLs. 3888 Programme (3813 vor einem Jahr, 3703 vor zwei Jahren) weisen geringfügige Betriebsprobleme auf, die die Nutzung der Hauptfunktionen der Anwendungen nicht beeinträchtigen.

Wichtige Neuerungen in Wine 8.0:

  • Module im PE-Format
    • Nach vierjähriger Arbeit ist die Konvertierung aller DLL-Bibliotheken zur Verwendung des ausführbaren Dateiformats PE (Portable Executable, das in Windows verwendet wird) abgeschlossen. Die Verwendung von PE ermöglicht die Verwendung von für Windows verfügbaren Debuggern und löst Probleme bei der Unterstützung verschiedener Kopierschutzschemata, die die Identität von Systemmodulen auf der Festplatte und im Speicher überprüfen. Probleme beim Ausführen von 32-Bit-Anwendungen auf 64-Bit-Hosts und x86-Anwendungen auf ARM-Systemen wurden ebenfalls behoben. Zu den verbleibenden Aufgaben, die in späteren experimentellen Versionen von Wine 8.x gelöst werden sollen, gehört ein Übergang von Modulen zur NT-Systemaufrufschnittstelle, anstatt direkte Aufrufe zwischen der PE- und der Unix-Schicht durchzuführen.
    • Es wurde ein spezieller Systemaufrufmanager implementiert, der zum Übersetzen von Aufrufen von PE- in Unix-Bibliotheken verwendet wird, um den Aufwand für die Ausführung eines vollständigen NT-Systemaufrufs zu reduzieren. Die Optimierung ermöglichte es beispielsweise, Leistungseinbußen bei der Verwendung der OpenGL- und Vulkan-Bibliotheken zu reduzieren.
    • Winelib-Anwendungen behalten die Möglichkeit, gemischte Windows/Unix-Assemblys von ELF-Bibliotheken (.dll.so) zu verwenden, aber solche Anwendungen ohne 32-Bit-Bibliotheken unterstützen keine über die NT-Systemaufrufschnittstelle verfügbaren Funktionen wie WoW64.
  • WoW64
    • WoW64-Schichten (64-Bit-Windows-on-Windows) werden für alle Unix-Bibliotheken bereitgestellt und ermöglichen 32-Bit-Modulen im PE-Format den Zugriff auf 64-Bit-Unix-Bibliotheken, die nach der Beseitigung direkter PE/Unix-Aufrufe dies ermöglichen Es ist möglich, 32-Bit-Windows-Anwendungen auszuführen, ohne 32-Bit-Unix-Bibliotheken zu installieren.
    • Ohne einen 32-Bit-Wine-Loader können 32-Bit-Anwendungen im neuen experimentellen Windows-ähnlichen WoW64-Modus ausgeführt werden, in dem 32-Bit-Code in einem 64-Bit-Prozess ausgeführt wird. Der Modus wird beim Erstellen von Wine mit der Option „—enable-archs“ aktiviert.
  • Grafisches Subsystem
    • Die Standardkonfiguration verwendet das Lichtthema („Licht“). Sie können das Thema mit dem Dienstprogramm WineCfg ändern.
      Stabile Version von Wine 8.0
    • Grafiktreiber (winex11.drv, winemac.drv, wineandroid.drv) werden konvertiert, um Systemaufrufe auf Unix-Ebene auszuführen und über die Win32u-Bibliothek auf die Treiber zuzugreifen.
      Stabile Version von Wine 8.0
    • Die Druckprozessor-Architektur wurde implementiert und dient dazu, direkte Aufrufe zwischen der PE- und der Unix-Ebene im Druckertreiber zu eliminieren.
    • Die Direct2D-API unterstützt jetzt Effekte.
    • Die Direct2D-API hat die Möglichkeit hinzugefügt, Befehlslisten aufzuzeichnen und abzuspielen.
    • Der Treiber für die Vulkan-Grafik-API hat Unterstützung für die Spezifikation Vulkan 1.3.237 hinzugefügt (Vulkan 7 wurde in Wine 1.2 unterstützt).
  • Direct3D
    • Ein neuer Shader-Compiler für HLSL (High-Level Shader Language) wurde hinzugefügt, der auf der Grundlage der vkd3d-Shader-Bibliothek implementiert wurde. Basierend auf vkd3d-shader wurden außerdem ein HLSL-Disassembler und ein HLSL-Präprozessor vorbereitet.
    • Die in D3DX 10 eingeführte Thread Pump-Schnittstelle wurde implementiert.
    • Direct3D 10-Effekte bieten Unterstützung für viele neue Ausdrücke.
    • Die Support-Bibliothek für D3DX 9 unterstützt jetzt die Cubemap-Texturprojektion.
  • Ton und Video
    • Basierend auf dem GStreamer-Framework wurde die Unterstützung von Filtern zur Dekodierung von Audio im MPEG-1-Format implementiert.
    • Es wurde ein Filter zum Lesen von Streaming-Audio und -Video im ASF-Format (Advanced Systems Format) hinzugefügt.
    • Die Zwischenbibliotheksschicht OpenAL32.dll wurde entfernt, stattdessen wird nun die native Windows-Bibliothek OpenAL32.dll verwendet, die mit Anwendungen geliefert wird.
    • Der Media Foundation Player verfügt über eine verbesserte Erkennung von Inhaltstypen.
    • Die Möglichkeit zur Steuerung der Datenübertragungsrate (Rate Control) wurde implementiert.
    • Verbesserte Unterstützung für den Standardmixer und -präsenter im Enhanced Video Renderer (EVR).
    • Erstimplementierung der Writer Encoding API hinzugefügt.
    • Verbesserte Topologie-Loader-Unterstützung.
  • Eingabegeräte
    • Deutlich verbesserte Unterstützung für Hot-Plugging von Controllern.
    • Es wird eine verbesserte Implementierung des Codes zur Bestimmung von Spiellenkrädern vorgeschlagen, der auf der Grundlage der SDL-Bibliothek erstellt wurde.
    • Verbesserte Unterstützung für den Force-Feedback-Effekt bei der Verwendung von Gaming-Rädern.
    • Die Möglichkeit, linke und rechte Vibrationsmotoren mithilfe der HID Haptic-Spezifikation zu steuern, wurde implementiert.
    • Das Design des Joystick-Bedienfelds wurde geändert.
    • Unterstützung für Sony DualShock- und DualSense-Controller wird durch die Verwendung des Hidraw-Backends bereitgestellt.
    • Das WinRT-Modul Windows.Gaming.Input wird mit der Implementierung einer Softwareschnittstelle für den Zugriff auf Gamepads, Joysticks und Gaming-Räder vorgeschlagen. Für die neue API ist unter anderem die Unterstützung der Benachrichtigung über Hot-Plugging von Geräten, taktile und Vibrationseffekte implementiert.
  • Internationalisierung
    • Die Generierung der korrekten Locale-Datenbank im Format „locale.nls“ aus dem Unicode CLDR-Repository (Unicode Common Locale Data Repository) ist sichergestellt.
    • Die Unicode-String-Vergleichsfunktionen wurden verschoben, um den Datenbank- und Windows-Sortierschlüsselalgorithmus anstelle des Unicode-Sortierungsalgorithmus zu verwenden, wodurch das Verhalten näher an Windows herangeführt wird.
    • Den meisten Funktionen wurde Unterstützung für obere Unicode-Codebereiche (Ebenen) hinzugefügt.
    • Es ist möglich, UTF-8 als ANSI-Kodierung zu verwenden.
    • Zeichentabellen wurden auf die Unicode 15.0.0-Spezifikation aktualisiert.
  • Texte und Schriftarten
    • Für die meisten Systemschriftarten wurde die Schriftartenverknüpfung aktiviert, wodurch das Problem fehlender Glyphen auf Systemen mit chinesischen, koreanischen und japanischen Gebietsschemata gelöst wird.
    • Überarbeitetes Fallback-Font-Fallback in DirectWrite.
  • Kernel (Windows-Kernel-Schnittstellen)
    • Die ApiSetSchema-Datenbank wurde implementiert, die die api-ms-*-Module ersetzt und den Festplatten- und Adressraumverbrauch reduziert.
    • DOS-Dateiattribute werden mithilfe erweiterter FS-Attribute in einem Samba-kompatiblen Format auf der Festplatte gespeichert.
  • Netzwerkfunktionen
    • Unterstützung für das OCSP (Online Certificate Status Protocol) hinzugefügt, das zur Überprüfung widerrufener Zertifikate verwendet wird.
    • Der Umfang der im JavaScript-Standardkonformitätsmodus verfügbaren EcmaScript-Funktionen wurde erweitert.
    • Implementierte einen Garbage Collector für JavaScript.
    • Das Gecko-Motorenpaket umfasst Funktionen für Menschen mit Behinderungen.
    • MSHTML fügt Unterstützung für die Web Storage API, das Performance-Objekt und zusätzliche Objekte für die Ereignisverarbeitung hinzu.
  • Eingebettete Anwendungen
    • Alle integrierten Anwendungen wurden für die Verwendung der Common Controls 6-Bibliothek konvertiert, mit Unterstützung für Designthemen und Rendering unter Berücksichtigung von Bildschirmen mit hoher Pixeldichte.
    • Erweiterte Funktionen zum Debuggen von Threads im Wine Debugger (winedbg).
    • Die Registrierungsdienstprogramme (REGEDIT und REG) unterstützen jetzt den QWORD-Typ.
    • Notepad hat eine Statusleiste mit Informationen über die Cursorposition und eine Goto Line-Funktion hinzugefügt, um zu einer bestimmten Zeilennummer zu wechseln
    • Die integrierte Konsole ermöglicht die Datenausgabe in der OEM-Codepage.
    • Der Befehl „query“ wurde zum Dienstprogramm sc.exe (Service Control) hinzugefügt.
  • Montagesystem
    • Es wurde die Möglichkeit bereitgestellt, ausführbare Dateien im PE-Format für mehrere Architekturen zu erstellen (z. B. „—enable-archs=i386,x86_64“).
    • Auf allen Plattformen mit dem 32-Bit-Long-Typ werden Datentypen, die in Windows als Long definiert sind, in Wine jetzt als „Long“ anstelle von „Int“ neu definiert. In Winelib kann dieses Verhalten über die Definition WINE_NO_LONG_TYPES deaktiviert werden.
    • Es wurde die Möglichkeit hinzugefügt, Bibliotheken ohne Verwendung von dlltool zu generieren (aktiviert durch Festlegen der Option „—without-dlltool“ in winebuild).
    • Um die Ladeeffizienz zu verbessern und die Größe codeloser, reiner Ressourcenbibliotheken zu reduzieren, implementiert winegcc die Option „--data-only“.
  • Verschiedene
    • Aktualisierte Versionen der integrierten Bibliotheken Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • Die Wine Mono-Engine mit .NET-Plattformimplementierung wurde auf Version 7.4 aktualisiert.
    • Unterstützung für Verschlüsselung basierend auf dem RSA-Algorithmus und digitalen RSA-PSS-Signaturen wurde implementiert.
    • Erste Version der UI-Automatisierungs-API hinzugefügt.
    • Der Quellbaum umfasst die LDAP- und vkd3d-Bibliotheken, die im PE-Format kompiliert sind, sodass keine Unix-Assemblys dieser Bibliotheken bereitgestellt werden müssen.
    • Die OpenAL-Bibliothek wurde eingestellt.

Source: opennet.ru

Kommentar hinzufügen