Stabile Version von Wine 9.0

Nach einem Jahr Entwicklung und 26 experimentellen Versionen wurde die stabile Veröffentlichung der Open-Source-Implementierung der Win32 API — Wine 9.0 — vorgestellt, die ĂŒber 7000 Änderungen umfasst. Zu den wichtigsten Neuerungen in der neuen Version gehört die Implementierung der WoW64-Architektur zur AusfĂŒhrung von 32-Bit-Programmen in einer 64-Bit-Umgebung, die Integration eines Treibers zur UnterstĂŒtzung von Wayland, die UnterstĂŒtzung der ARM64-Architektur, die Implementierung der DirectMusic-API und die UnterstĂŒtzung von Smartcards.

In Wine wurde die vollstÀndige FunktionalitÀt von 5336 Windows-Anwendungen (vor einem Jahr 5266, vor zwei Jahren 5156, vor drei Jahren 5049) bestÀtigt, wÀhrend weitere 4397 (vor einem Jahr 4370, vor zwei Jahren 4312, vor drei Jahren 4227) Programme mit zusÀtzlichen Anpassungen und externen DLLs einwandfrei funktionieren. Bei 3943 Programmen (vor einem Jahr 3888, vor zwei Jahren 3813, vor drei Jahren 3703) treten leichte Probleme auf, die die Nutzung der Hauptfunktionen der Anwendungen jedoch nicht beeintrÀchtigen.

Wesentliche Neuerungen von Wine 9.0:

  • Es wurde ein Treiber winewayland.drv hinzugefĂŒgt, der es ermöglicht, Wine in Umgebungen zu verwenden, die auf dem Wayland-Protokoll basieren, ohne XWayland und Komponenten von X11 einzusetzen. Die Entwicklung zielt darauf ab, den Betrieb einer reinen Wayland-Umgebung mit UnterstĂŒtzung fĂŒr die AusfĂŒhrung von Windows-Anwendungen zu gewĂ€hrleisten, ohne dass Pakete installiert werden mĂŒssen, die mit X11 verbunden sind, was eine höhere Leistung und ReaktionsfĂ€higkeit von Spielen durch den Ausschluss ĂŒberflĂŒssiger Schichten ermöglicht. Die Verwendung einer reinen Wayland-Umgebung fĂŒr Wine reduziert zudem Sicherheitsprobleme, die mit X11 verbunden sind (zum Beispiel können nicht vertrauenswĂŒrdige Spiele unter X11 andere Anwendungen ausspionieren, da das X11-Protokoll den Zugriff auf alle Eingabeveranstaltungen ermöglicht und das EinfĂŒgen von gefĂ€lschten Tastatureingaben erlaubt).

    Der Treiber wird als experimentell und noch in der Entwicklung eingestuft, bietet jedoch bereits UnterstĂŒtzung fĂŒr viele Funktionen, darunter Fensterverwaltung, UnterstĂŒtzung fĂŒr mehrere Monitore, UnterstĂŒtzung der Skalierung auf Bildschirmen mit hoher Pixeldichte (high-DPI), Verarbeitung relativer Koordinaten bei der Verfolgung von Mauskbewegungen und UnterstĂŒtzung der grafischen API Vulkan. Der Treiber ist standardmĂ€ĂŸig nicht aktiv und um ihn zu aktivieren, muss "wayland" in den Registrierungseintrag "HKCU\Software\Wine\Drivers" hinzugefĂŒgt werden, und es muss sichergestellt werden, dass die Umgebungsvariable DISPLAY nicht gesetzt ist: wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland

  • Die Übersetzung aller Module auf die Schnittstelle der NT-Systemaufrufe wurde abgeschlossen, anstelle direkter Aufrufe zwischen den PE- und Unix-Ebenen, was das Ende jahrelanger Arbeiten an der Übersetzung aller DLL-Bibliotheken auf die Nutzung des Formats der ausfĂŒhrbaren Dateien PE (Portable Executable) markiert.
  • Die Entwicklung der WoW64-Schicht (64-Bit Windows-on-Windows) wurde fortgesetzt, die es ermöglicht, 32-Bit Windows-Anwendungen in 64-Bit Unix-Systemen auszufĂŒhren. In allen Modulen, die auf Unix-Bibliotheken zugreifen, werden WoW64-Systemaufrufkonverter (Thunk) eingesetzt, die es 32-Bit-Modulen im PE-Format ermöglichen, auf 64-Bit Unix-Bibliotheken zuzugreifen.

    Ein neuer WoW64-AusfĂŒhrungsmodus wurde verbessert, in dem 32-Bit-Code innerhalb eines 64-Bit-Prozesses ausgefĂŒhrt wird (im alten WoW64-Modus wurden 32-Bit-Anwendungen in 32-Bit Unix-Prozessen ausgefĂŒhrt). Die UnterstĂŒtzung des neuen WoW64-Modus auf der macOS-Plattform wurde hinzugefĂŒgt. Da im neuen WoW64-Modus bestimmte EinschrĂ€nkungen wie die fehlende UnterstĂŒtzung des 16-Bit-Modus und die geringere Leistung von OpenGL aufgrund fehlender UnterstĂŒtzung der Erweiterung ARB_buffer_storage vermerkt sind, ist er derzeit nicht standardmĂ€ĂŸig aktiviert und erfordert den Build mit der Option „—enable-archs=i386,x86_64“ im Konfigurationsskript.

  • Die Möglichkeit, bestehende Windows-executables auf ARM64-Architekturen auszufĂŒhren, wurde hinzugefĂŒgt. Die Möglichkeit, Wine fĂŒr ABI ARM64EC (ARM64 Emulation Compatible) zu erstellen, und die UnterstĂŒtzung fĂŒr das Laden von ARM64EC-Modulen wurde umgesetzt, die dazu dienen, die Portierung von Anwendungen, die ursprĂŒnglich fĂŒr die x86_64-Architektur geschrieben wurden, auf ARM64-Systeme zu vereinfachen, indem die AusfĂŒhrung einzelner Module mit x86_64-Code in einer ARM64-Umgebung mittels Emulator ermöglicht wird. UnterstĂŒtzung fĂŒr das PE-Dateiformat ARM64X wurde hinzugefĂŒgt, das es ermöglicht, eine ausfĂŒhrbare Datei in x64/Arm64EC- und ARM64-Prozessen zu laden. Eine Schnittstelle zur Emulation von 32-Bit-x86-Systemen wurde implementiert, aber die Emulator-Bibliothek ist derzeit nicht in das Hauptprogramm von Wine aufgenommen (zur AusfĂŒhrung von x86-Code in einer ARM64-Umgebung kann ein externer Emulator FEX verwendet werden).
  • Grafik-Subsystem
    • Der PostScript-Treiber wurde ĂŒberarbeitet, um Spool-Dateien im Windows-Format zu unterstĂŒtzen, in denen Daten ĂŒber DruckauftrĂ€ge gespeichert werden. Direkte Aufrufe an den Treiber aus der Unix-Umgebung wurden ausgeschlossen.
    • Das WinRT-Design unterstĂŒtzt jetzt den Dunkelmodus. In WineCfg wurde eine Einstellung zum Aktivieren des dunklen Designs der BenutzeroberflĂ€che hinzugefĂŒgt.
    • Der Treiber fĂŒr die grafische API Vulkan hat die UnterstĂŒtzung fĂŒr die Spezifikation Vulkan 1.3.272 hinzugefĂŒgt (in Wine 8.0 wurde 1.3.237 unterstĂŒtzt).
    • Die Funktionen der GdiPlus-Bibliothek wurden optimiert, was die Grafikleistung erhöht hat.
  • Direct3D
    • Die Analyse des mehrthreadigen Befehlsstroms wurde pausiert, wenn keine zu verarbeitenden Renderbefehle vorhanden sind, wodurch der Energieverbrauch auf das Niveau einer einthreadigen Bearbeitung gesenkt werden kann, wenn Programme ausgefĂŒhrt werden, die nicht die gesamte Bandbreite des Befehlsstroms beanspruchen.
    • In Direct3D 10 wurde die UnterstĂŒtzung zusĂ€tzlicher Effekte implementiert.
    • Leistungsoptimierungen wurden im Code von WineD3D und dem Backend, das die grafische API Vulkan nutzt, implementiert.
    • Im Vulkan-basierten Rendering-Code wurde eine ÜberprĂŒfung der vom GerĂ€t unterstĂŒtzten Funktionen hinzugefĂŒgt, die der Anwendung Informationen ĂŒber das verfĂŒgbare Direct3D-Funktionsniveau bereitstellt.
    • Die Funktionen D3DXFillTextureTX und D3DXFillCubeTextureTX wurden implementiert.
    • Im klassischen OpenGL ARB Shader-Backend wurde die UnterstĂŒtzung fĂŒr die Schattendefinition mithilfe der Erweiterung ARB_fragment_program_shadow hinzugefĂŒgt.
    • In D3DXLoadMeshHierarchyFromX und Ă€hnlichen Funktionen wurde die UnterstĂŒtzung fĂŒr das Laden von Benutzerdaten ĂŒber die ID3DXLoadUserData-Schnittstelle hinzugefĂŒgt.
  • Ton und Video
    • Eine erste Implementierung der DirectMusic API wurde vorgeschlagen. UnterstĂŒtzung fĂŒr Sammlungen, Instrumente und Soundbeispiele im SoundFont-Format wurde hinzugefĂŒgt. UnterstĂŒtzung fĂŒr den Doppler-Effekt wurde implementiert. Es wurden Tests zur ÜberprĂŒfung der korrekten Implementierung mit dem Sequencer dmime und dem MIDI-Synthesizer dmsynth durchgefĂŒhrt.
    • FĂŒr die Verwendung in der DirectMusic-API wurde die FluidSynth-Bibliothek integriert.
    • Die UnterstĂŒtzung zum Laden von Soundfonts (SoundFont — Formate fĂŒr die auf Samples basierende Synthese zur Wiedergabe von MIDI-Dateien) in den Formaten DLS1 und DLS2 sowie im SF2-Format, das in Linux verwendet wird, wurde implementiert.
    • Die Möglichkeit zur Wiedergabe von MIDI-Inhalten mit der dmsynth-Bibliothek wurde hinzugefĂŒgt, wobei der Software-Synthesizer FluidSynth und die DirectSound API zur Audioausgabe verwendet werden.
    • Ein Decoder fĂŒr Videos im Format des Videocodecs Indeo IV50 wurde hinzugefĂŒgt.
  • DirectShow
    • Eine DMO (DirectX Media Object)-Komponente mit Decoder fĂŒr das WMV-Format (Windows Media Video) wurde implementiert.
    • Ein Audioaufnahmefilter (DirectShow Audio Capture Filter) wurde hinzugefĂŒgt.
    • Im MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) wurde neben Audiostreams auch die UnterstĂŒtzung fĂŒr Video-Stream und Steuerstreams hinzugefĂŒgt.
    • Ein Filter zum Decodieren von Video im MPEG‑1-Format (DirectShow MPEG‑1 Video Decoder) wurde implementiert.
  • EingabegerĂ€te
    • Im DirectInput wurde die UnterstĂŒtzung fĂŒr Aktionszuordnungen (Action Maps) implementiert, die es ermöglichen, Tasten auf dem Gamecontroller bestimmten Aktionen in Spielen zuzuordnen.
  • Integration mit dem Desktop
    • Es wurde sichergestellt, dass Bindungen in die wichtigste Benutzerschnittstelle exportiert werden, sodass Anwendungen, die unter Wine ausgefĂŒhrt werden, als Protokollhandler beim Öffnen von URLs aufgerufen werden können (zum Beispiel das Starten von spotify.exe beim Öffnen von Links wie „spotify:user:spotify:playlist:848218482355482821“).
    • Es wurde die Extraktion von EDID-Daten (Extended Display Identification Data) mit Informationen ĂŒber die Parameter des angeschlossenen Monitors, wie z. B. den Namen und das Modell des GerĂ€ts, implementiert.
    • Es wurde die Möglichkeit bereitgestellt, das Desktopfenster, das im Vollbildmodus ausgefĂŒhrt wird, mit der SchaltflĂ€che „Desktop beenden“ im MenĂŒ „Start“ zu schließen.
  • Internationalisierung
    • Die UnterstĂŒtzung fĂŒr IME (Input Method Editors) wurde erweitert. Es wurden Maßnahmen zur GewĂ€hrleistung der KompatibilitĂ€t mit nativen Windows-Implementierungen von IME ergriffen und die Integration mit Linux-IME verbessert.
    • Die Generierung einer Datenbank von Locale im Format locale.nls aus der Unicode CLDR-Datenbank (Unicode Common Locale Data Repository) Version 44 wurde sichergestellt. UnterstĂŒtzung fĂŒr zusĂ€tzliche Locales wurde hinzugefĂŒgt: bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA, prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN und za-CN.
    • Die BenutzeroberflĂ€che wurde ins Georgische ĂŒbersetzt. VollstĂ€ndige Übersetzungen fĂŒr 16 Sprachen sowie teilweise Übersetzungen fĂŒr 31 Sprachen wurden bereitgestellt.
    • Die Unicode-Zeichentabellen wurden auf die Version des Standards 15.1.0 aktualisiert. Die Datenbank der Zeitzonen wurde aktualisiert.
  • Kern (Windows Kernel-Schnittstellen)
    • Die standardmĂ€ĂŸig ausgegebene Version von Windows wurde auf Windows 10 festgelegt.
    • FĂŒr ausfĂŒhrbare Dateien im PE-Format wurde die UnterstĂŒtzung fĂŒr die Adressraumrandomisierung (ASLR) implementiert, jedoch sind die Ladeadressen des Codes im Speicher noch nicht vollstĂ€ndig randomisiert.
    • Die UnterstĂŒtzung fĂŒr schwach fragmentierten Heap (LFH, Low Fragmentation Heap) wurde implementiert, was die Leistung von Speicherzuweisungsoperationen erhöht hat.
    • In den Mechanismus zur Zuweisung virtueller Speicher wurde die UnterstĂŒtzung fĂŒr die Reservierung von Speicher (Placeholder) eingefĂŒhrt, die es der Anwendung ermöglicht, einen bestimmten Bereich des virtuellen Speichers fĂŒr die zukĂŒnftige Verwendung zu reservieren.
    • 64-Bit-Lader (Loader und Preloader) fĂŒr ausfĂŒhrbare Dateien und Bibliotheken sind im format PIE (Position-Independent Executables) erstellt worden, um einen Teil des 32-Bit-Adressraums freizugeben.
    • Eine korrekte Entfaltung des Stacks (Stack Unwinding) fĂŒr NT-Systemaufrufe und Benutzer-Callback-Aufrufe wurde sichergestellt.
  • NetzwerkfĂ€higkeiten
    • Die MSHTML-Engine unterstĂŒtzt nun den Mechanismus der Speicherbereinigung ‚Cycle Collection‘.
    • MSHTML bietet jetzt UnterstĂŒtzung fĂŒr den synchronen Modus der Verarbeitung von XMLHttpRequest-Anfragen.
    • In jscript.dll wurde die UnterstĂŒtzung fĂŒr das WeakMap-Objekt hinzugefĂŒgt, um mit einer Sammlung von SchlĂŒssel/Wert-Paaren zu arbeiten, wobei der SchlĂŒssel ein Objekt ist, dem ein beliebiger Wert zugewiesen werden kann. Die Methoden WeakMap.get(), WeakMap.delete(), WeakMap.clear() und WeakMap.has() wurden implementiert.
    • Die Browsing-Engine Gecko wurde auf Version 2.47.4 aktualisiert.
    • Die UnterstĂŒtzung von Benachrichtigungen ĂŒber Änderungen des Netzwerkstatus wurde implementiert.
  • Kryptographie und Sicherheit
    • In der Bibliothek Winscard.dll wurde die UnterstĂŒtzung fĂŒr Smartcards implementiert, die ĂŒber die Systembibliothek PCSClite bereitgestellt wird.
    • In BCrypt wurde die UnterstĂŒtzung fĂŒr das Diffie-Hellman-SchlĂŒsselaustauschprotokoll hinzugefĂŒgt.
    • Das Paket Negotiate wurde implementiert, um eine Schicht zur Verwendung der SSPI (Security Support Provider Interface) zur Kommunikation mit SSP-Anbietern (Security Support Provider) bereitzustellen.
  • Eingebettete Anwendungen
    • Im Wine-Debugger (winedbg) wird die Zydis-Bibliothek zur Disassemblierung von X86-Maschinencodes eingesetzt.
    • Im WineCfg-Interface wurde die Möglichkeit hinzugefĂŒgt, alte Windows-Versionen (vor XP) auf 64-Bit-Plattformen einzustellen, um die AusfĂŒhrung veralteter Anwendungen im WoW64-Modus zu ermöglichen.
    • In allen integrierten Grafik-Anwendungen wurde die Ausgabe von Fehlermeldungen in einem separaten Dialog anstelle der Anzeige in der Konsole implementiert.
    • Das Programm systeminfo zeigt nun Informationen aus der WMI-Datenbank (Windows Management Instrumentation) an.
    • Die Anwendung klist wurde hinzugefĂŒgt, um Kerberos-Tickets anzuzeigen.
    • In der Anwendung taskkill wurde die Möglichkeit zur erzwungenen Beendigung von Kindprozessen implementiert.
    • In das Tool start wurde der Parameter ‚/machine‘ hinzugefĂŒgt, um die Architektur auszuwĂ€hlen, die beim Start hybrider ausfĂŒhrbarer Dateien verwendet wird, die sowohl x86 als auch ARM unterstĂŒtzen.
    • Der grĂ¶ĂŸte Teil der FunktionalitĂ€t des Programms tasklist wurde implementiert.
    • Eine grundsĂ€tzliche Implementierung der Anwendung findstr wurde hinzugefĂŒgt.
  • Entwicklungstools
    • In dem Tool WineDump wurde die Möglichkeit implementiert, den Inhalt von Windows-Registrierungsdateien (REGF-Format) anzuzeigen sowie Daten fĂŒr alle Architekturen (x86/ARM64) zu zeigen, die in hybriden PE-Dateien unterstĂŒtzt werden.
    • Im IDL-Compiler wurde die UnterstĂŒtzung fĂŒr die Attribute „composable“, „default_overload“, „deprecated“ und „protected“ hinzugefĂŒgt.
    • Die Bibliothek libwine.so wurde entfernt, da sie in der Version Wine 6.0 als veraltet erklĂ€rt wurde und in Wine seit langem nicht mehr verwendet wird. ELF-Programme, die in Ă€lteren Versionen von Wine (5.0 und Ă€lter) mit libwine.so erstellt wurden, benötigen zur AusfĂŒhrung in Wine 9.0 eine Neucompilierung.
  • Integrierte Bibliotheken und externe AbhĂ€ngigkeiten
    • In die Integration wurden die Bibliotheken FluidSynth 2.3.3, Musl 1.2.3 (nur mathematische Funktionen) und Zydis 4.0.0 aufgenommen.
    • Die Komponenten Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 und Zlib 1.3 wurden auf neue Versionen aktualisiert. Die Wine Mono-Engine mit der .NET-Plattform-Implementierung wurde auf die Version 8.1.0 aktualisiert.
    • Im Treiber winewayland.drv werden die Clientbibliothek Wayland sowie die Bibliotheken xkbcommon und xkbregistry als externe AbhĂ€ngigkeiten verwendet.
    • Zur UnterstĂŒtzung von Smartcards wird die externe Bibliothek PCSClite (in macOS — PCSC) verwendet.
    • FĂŒr die Erstellung von PE-Dateien auf nicht i386-Plattformen ist jetzt ein Cross-Compiler erforderlich, der die Direktiven «.seh» zur Verarbeitung von Ausnahmen unterstĂŒtzt.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster