Die stabile Version von Wine 8.0 wurde veröffentlicht.

Nach einem Jahr Entwicklung und 28 experimentellen Versionen wurde die stabile Version der offenen Win32 API-Implementierung – Wine 8.0 – vorgestellt, die mehr als 8600 Änderungen umfasst. Ein wesentliches Ergebnis dieser Version ist der Abschluss der Übertragung der Wine-Module in das PE-Format.

In Wine ist die vollständige Funktionalität von 5266 Windows-Programmen bestätigt (vor einem Jahr 5156, vor zwei Jahren 5049). Weitere 4370 Programme (vor einem Jahr 4312, vor zwei Jahren 4227) funktionieren hervorragend mit zusätzlichen Anpassungen und externen DLLs. Bei 3888 Programmen (vor einem Jahr 3813, vor zwei Jahren 3703) treten kleinere Probleme auf, die die Nutzung der Hauptfunktionen der Anwendungen jedoch nicht beeinträchtigen.

Hauptinnovationen in Wine 8.0:

  • Module im PE-Format
    • Nach vier Jahren Entwicklungszeit ist die vollständige Umstellung aller DLL-Bibliotheken auf das Portable Executable (PE) Format, das in Windows verwendet wird, abgeschlossen. Die Verwendung von PE ermöglicht die Nutzung der verfügbaren Debugger für Windows und löst Probleme mit der Unterstützung unterschiedlicher Kopierschutzschemata, die die Identität systemeigener Module sowohl auf der Festplatte als auch im Arbeitsspeicher überprüfen. Zudem wurden die Probleme mit der Ausführung von 32-Bit-Anwendungen auf 64-Bit-Hosts und x86-Anwendungen auf ARM-Systemen behoben. Unter den verbleibenden Aufgaben, die in zukünftigen experimentellen Versionen von Wine 8.x angegangen werden sollen, wird die Umstellung der Module auf die NT-Systemaufrufschnittstelle hervorgehoben, anstatt direkte Aufrufe zwischen den PE- und Unix-Ebenen durchzuführen.
    • Es wurde ein spezieller Systemaufruf-Dispatcher implementiert, der verwendet wird, um Aufrufe von PE in Unix-Bibliotheken zu übersetzen, um die Overhead-Kosten bei der Ausführung eines vollständigen NT-Systemaufrufs zu reduzieren. So konnte durch durchgeführte Optimierungen der Leistungsabfall bei der Nutzung der OpenGL- und Vulkan-Bibliotheken verringert werden.
    • In Winelib-Anwendungen bleibt die Möglichkeit bestehen, gemischte Windows/Unix-Bibliotheken im ELF-Format (.dll.so) zu verwenden. Solche Anwendungen werden jedoch keine Funktionalität unterstützen, die über die NT-Systemaufruf-Schnittstelle verfügbar ist, wie z.B. WoW64, ohne 32-Bit-Bibliotheken.
  • WoW64
    • Für alle Unix-Bibliotheken sind WoW64-Schichten (64-Bit Windows-on-Windows) bereitgestellt, die es 32-Bit-Modulen im PE-Format ermöglichen, auf 64-Bit-Unix-Bibliotheken zuzugreifen. Dies ermöglicht die Ausführung von 32-Bit-Windows-Anwendungen ohne die Installation von 32-Bit-Unix-Bibliotheken, nachdem direkte PE/Unix-Aufrufe entfernt wurden.
    • Ohne einen 32-Bit-Wine-Loader wird die Ausführung von 32-Bit-Anwendungen im neuen experimentellen Windows-ähnlichen Modus WoW64 ermöglicht, in dem 32-Bit-Code innerhalb eines 64-Bit-Prozesses ausgeführt wird. Dieser Modus wird aktiviert, wenn Wine mit der Option ‘—enable-archs’ kompiliert wird.
  • Grafiksubsystem
    • In der Standardeinstellung wird ein helles Design verwendet («Light»). Das Thema kann über das Tool WineCfg geändert werden.
      Die stabile Version von Wine 8.0 wurde veröffentlicht.
    • Grafiktreiber (winex11.drv, winemac.drv, wineandroid.drv) wurden angepasst, um Unix-Systemaufrufe auszuführen und über die Win32u-Bibliothek auf Treiber zuzugreifen.
      Die stabile Version von Wine 8.0 wurde veröffentlicht.
    • Eine Architektur für Druckausgabe-Manager (Print Processor) wurde implementiert, um direkte Aufrufe zwischen den PE- und Unix-Ebenen im Druckertreiber zu vermeiden.
    • Im Direct2D-API wurde die Unterstützung für Effekte implementiert.
    • Im Direct2D-API wurde die Möglichkeit hinzugefügt, Befehlssätze aufzuzeichnen und abzuspielen.
    • Der Treiber für die Grafik-API Vulkan unterstützt jetzt die Spezifikation Vulkan 1.3.237 (in Wine 7 war Vulkan 1.2 unterstützt).
  • Direct3D
    • Ein neuer Shader-Compiler für die HLSL (High-Level Shader Language) wurde auf Basis der vkd3d-shader-Bibliothek implementiert. Zudem wurden ein HLSL-Dissassembler und ein HLSL-Präprozessor auf Basis von vkd3d-shader vorbereitet.
    • Das Thread Pump-Interface, das in D3DX 10 eingeführt wurde, ist implementiert.
    • In den Effekten von Direct3D 10 wurde die Unterstützung für viele neue Ausdrücke hinzugefügt.
    • Die Hilfsbibliothek für D3DX 9 bietet Unterstützung für die Projektion von Cubemap-Texturen.
  • Ton und Video
    • Auf Basis des GStreamer-Frameworks wurde die Unterstützung von Filtern für die Dekodierung von Audio im MPEG-1-Format implementiert.
    • Ein Filter für das Streaming von Audio- und Videoinhalten im ASF-Format (Advanced Systems Format) wurde hinzugefügt.
    • Die Zwischenbibliothek OpenAL32.dll wurde entfernt, stattdessen wird jetzt die native Windows-Bibliothek OpenAL32.dll verwendet, die mit den Anwendungen geliefert wird.
    • Die Erkennung des Inhalts in Media Foundation Player wurde verbessert.
    • Die Möglichkeit zur Steuerung der Datenrate (Rate Control) wurde implementiert.
    • Die Unterstützung für den Mixer und den Presenter, die standardmäßig im Enhanced Video Renderer (EVR) angeboten werden, wurde verbessert.
    • Eine erste Implementierung der API Writer Encoding wurde hinzugefügt.
    • Die Unterstützung für den Topologie-Loader wurde verbessert.
  • Eingabegeräte
    • Die Unterstützung für das Hot-Plugging von Controllern wurde erheblich verbessert.
    • Eine verbesserte Implementierung zur Erkennung von Spielcontrollern wurde basierend auf der SDL-Bibliothek vorgeschlagen.
    • Die Unterstützung für Force Feedback bei der Verwendung von Spielcontrollern wurde verbessert.
    • Die Steuerung der linken und rechten Vibrationsmotoren, die die HID Haptic-Spezifikation verwenden, wurde implementiert.
    • Die Gestaltung wurde geändert. dem Kontrollpanel Joystick.
    • Durch die Nutzung des hidraw-Backends wird die Unterstützung für Sony DualShock- und DualSense-Controller bereitgestellt.
    • Das WinRT-Modul Windows.Gaming.Input wird mit einer API zur Ansteuerung von Gamepads, Joysticks und Lenkrädern angeboten. Das neue API bietet unter anderem Unterstützung für Benachrichtigungen über das Hot-Plugging von Geräten sowie haptische und Vibrations-Effekte.
  • Internationalisierung
    • Die korrekte Generierung einer Datenbank für Lokalisierungen im Format locale.nls aus dem Unicode CLDR Repository (Unicode Common Locale Data Repository) wurde sichergestellt.
    • Die Funktionen zum Vergleichen von Unicode-Zeichenfolgen wurden angepasst, um die Datenbank und den Windows Sortkey-Algorithmus anstelle des Unicode Collation-Algorithmus zu verwenden, was das Verhalten näher an Windows bringt.
    • Die Unterstützung für die oberen Codebereiche (Planes) von Unicode wurde in den meisten Funktionen hinzugefügt.
    • Die Verwendung von UTF-8 als ANSI-Kodierung wird jetzt unterstützt.
    • Die Zeichentabellen wurden auf die Unicode-Spezifikation 15.0.0 aktualisiert.
  • Text und Schriftarten
    • Für die meisten Systemschriftarten wurde das Schriftarten-Binding aktiviert, was das Problem mit fehlenden Glyphen auf Systemen mit chinesischen, koreanischen und japanischen Lokalisierungen löst.
    • Der Fallback auf die Ersatzschriftart in DirectWrite wurde überarbeitet.
  • Kernel (Kernel-Schnittstellen von Windows)
    • Die Datenbank ApiSetSchema wurde implementiert, die die Module api-ms-* ersetzt und den Speicherplatz- und Adressbedarf reduziert hat.
    • Die Speicherung von DOS-Dateiattributen im Samba-kompatiblen Format wurde sichergestellt, indem erweiterte Dateisystemattribute verwendet wurden.
  • Netzwerkfunktionen
    • Unterstützung für das OCSP-Protokoll (Online Certificate Status Protocol) hinzugefügt, das zur Überprüfung widerrufener Zertifikate verwendet wird.
    • Das Spektrum der in Übereinstimmung mit den JavaScript-Standards verfügbaren EcmaScript-Funktionen wurde erweitert.
    • Ein Garbage Collector für JavaScript wurde implementiert.
    • Im Paket mit der Gecko-Engine wurden Hilfsmittel für Menschen mit Behinderungen integriert.
    • In MSHTML wurde Unterstützung für die Web Storage API, das Performance-Objekt und zusätzliche Objekte zur Ereignisverarbeitung hinzugefügt.
  • Integrierte Anwendungen
    • Alle integrierten Anwendungen wurden auf die Verwendung der Common Controls 6-Bibliothek umgestellt, mit Unterstützung für Design-Themen und hochauflösende Bildschirmdarstellung.
    • Die Debugging-Funktionen für Threads im Wine Debugger (winedbg) wurden erweitert.
    • In den Registry-Utilities (REGEDIT und REG) wurde Unterstützung für den QWORD-Typ hinzugefügt.
    • In Notepad wurde eine Statuszeile hinzugefügt, die Informationen zur Cursorposition sowie die Funktion 'Gehe zu Zeile' zum Wechseln zu einer angegebenen Zeilennummer bietet.
    • In der integrierten Konsole wird die Ausgabe von Daten im OEM-Zeichensatz unterstützt.
    • In das Dienstprogramm sc.exe (Service Control) wurde der Befehl 'query' integriert.
  • Build-System
    • Es besteht die Möglichkeit, ausführbare Dateien im PE-Format für mehrere Architekturen zu erstellen (z. B. '—enable-archs=i386,x86_64').
    • Auf allen Plattformen mit 32-Bit long-Typen werden die in Windows als long definierten Datentypen in Wine jetzt als 'long' anstelle von 'int' umdefiniert. In Winelib kann dieses Verhalten durch die Definition WINE_NO_LONG_TYPES deaktiviert werden.
    • Die Möglichkeit zur Generierung von Bibliotheken ohne die Verwendung von dlltool wurde hinzugefügt (aktiviert durch Festlegung der Option '—without-dlltool' in winebuild).
    • Um die Effizienz des Ladens zu steigern und die Größe von Bibliotheken zu verringern, die keinen Code enthalten und nur Ressourcen beinhalten, wurde in winegcc die Option '—data-only' implementiert.
  • Verschiedenes
    • Die Versionen der eingebetteten 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 wurden aktualisiert.
    • Die Wine Mono-Engine mit der .NET-Plattform-Implementierung wurde auf Version 7.4 aktualisiert.
    • Die Unterstützung für die Verschlüsselung basierend auf dem RSA-Algorithmus und digitalen Signaturen RSA-PSS wurde implementiert.
    • Eine erste Version der API UI Automation wurde hinzugefügt.
    • Die Quellbibliotheken LDAP und vkd3d wurden in das Quellverzeichnis aufgenommen, die im PE-Format kompiliert werden, was die Notwendigkeit urn die Bereitstellung von Unix-Builds dieser Bibliotheken beseitigt.
    • Die Verwendung der OpenAL-Bibliothek wurde eingestellt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster