Stabile Version von Wine 10.0

Nach einem Jahr Entwicklung und 29 experimentellen Versionen wird die stabile Version der Open-Source-Implementierung der Win32 API — Wine 10.0 — vorgestellt, die mehr als 6000 Änderungen umfasst. Zu den wichtigsten Neuerungen in der neuen Version zählen die vollständige Unterstützung der ARM64EC-Architektur, die Skalierung auf hochauflösenden Bildschirmen, die standardmäßige Aktivierung des Wayland-Treibers, die Implementierung von Panels zur Anpassung des Bildschirms und des Joysticks, ein alternativer Multimedia-Backend basierend auf FFmpeg, der Bluetooth-Treiber, Unterstützung für Vulkan 1.4 und die Möglichkeit zur Emulation von Video-Moduswechseln.

In Wine sind 5372 Windows-Programme voll funktionsfähig (vor einem Jahr 5336, vor zwei Jahren 5266, vor drei Jahren 5156), weitere 4435 Programme (vor einem Jahr 4397, vor zwei Jahren 4370, vor drei Jahren 4312) funktionieren hervorragend mit zusätzlichen Anpassungen und externen DLLs. Bei 4020 Programmen (vor einem Jahr 3943, vor zwei Jahren 3888, vor drei Jahren 3813) treten kleinere Probleme auf, die jedoch die Nutzung der Hauptfunktionen der Anwendungen nicht beeinträchtigen.

Wesentliche Neuerungen von Wine 10.0:

  • ARM64
    • Die vollständige Unterstützung der ARM64EC-Architektur (ARM64 Emulation Compatible) ist gewährleistet, deren Unterstützungsgrad in Wine mit der ARM64-Architektur auf gleicher Höhe steht. Die ARM64EC-Architektur wurde entwickelt, um die Portierung von für x86_64-Systeme ursprünglich geschriebenen Anwendungen auf ARM64-Systeme zu erleichtern und ermöglicht die Ausführung einzelner Module mit x86_64-Code in einer ARM64-Umgebung mithilfe eines Emulators.
    • Die vollständige Unterstützung des ARM64X PE-Format wurde implementiert, das die Kombination von ARM64EC- und ARM64-Architekturcode in einer einzigen ausführbaren Datei ermöglicht. Um Wine im ARM64X-Format zu erstellen, muss LLVM aus Git installiert werden (die erforderliche Funktionalität wird in die Version LLVM 20 aufgenommen) und beim Starten des Skripts "configure" die Option "--enable-archs=arm64ec,aarch64" angegeben werden.
    • Eine Schnittstelle zur Emulation von 64-Bit-x86-Systemen wurde realisiert. Beim Einsatz von ARM64EC wird Wine wie gewohnt ausgeführt, während die Emulation nur für x86-64-Anwendungs-Code angewendet wird. Die Bibliothek mit dem Emulator ist derzeit noch nicht im Hauptbestand von Wine enthalten, aber zum Ausführen von x86-64-Code in einer ARM64-Umgebung kann der externe Emulator FEX verwendet werden, der mit Unterstützung für ARM64EC erstellt wurde.
    • Für die Unterstützung von ARM64 ist die Verwendung von 4 KB großen Speicherseiten im System erforderlich, wie es das Windows ABI verlangt (der Betrieb in Umgebungen mit Linux-Kernen, die 16K- oder 64K-Speicherseiten verwenden, wird derzeit nicht unterstützt).
  • Grafiksubsystem
    • Eine genauere Skalierung auf Bildschirmen mit hoher Pixel-Dichte (High-DPI) wurde implementiert. Der DPI-Bewusstseinsmodus wird unterstützt, um die Darstellung von Anwendungen auf Bildschirmen mit hoher Pixel-Dichte zu organisieren, je nachdem, ob die Anwendung die Anpassung an Änderungen der DPI unterstützt oder nicht (Anwendungen, die die DPI nicht berücksichtigen, werden automatisch skaliert). Optionen wurden hinzugefügt, um die Unterstützung für High-DPI je nach Anwendung oder Wine-Präfix zu überschreiben.
    • Der Treiber für die grafische API Vulkan hat die Unterstützung der Vulkan-Spezifikation 1.4 hinzugefügt (in Wine 9.0 war Vulkan 1.3.272 unterstützt). Vulkan-Erweiterungen zum Kodieren und Dekodieren von Videos wurden hinzugefügt.
    • Bei Verwendung des X11-Backends wurde die Möglichkeit zur Darstellung von Vulkan-Child-Fenstern für Anwendungen, die solche Fenster zur Ausgabe von 3D-Inhalten nutzen, implementiert (dies war zuvor nur für OpenGL möglich).
    • In die GdiPlus-Bibliothek wurde die Unterstützung für den Schriftverknüpfungsmechanismus („Font Linking“) aufgenommen, der es ermöglicht, bei der Textdarstellung mehrere Schriftarten zu verwenden, wenn keine einzelne Schriftart alle im Text vorkommenden Zeichen abdeckt.
  • Wayland
    • Im Standardkonfiguration ist der Treiber winewayland.drv aktiviert, der die Nutzung von Wine in Umgebungen auf Basis des Wayland-Protokolls ohne Verwendung von XWayland und X11-Komponenten ermöglicht. Wine startet Anwendungen standardmäßig direkt auf Wayland, wenn XWayland nicht verfügbar ist; andernfalls bleibt der Start unter Verwendung von XWayland priorisiert. Um Wayland zwangsweise zu aktivieren, kann die Umgebungsvariable DISPLAY verwendet oder ein Schlüssel in der Registry hinzugefügt werden, indem die Datei file.reg erstellt wird: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] „Graphics“=„wayland“ und angewendet wird mit dem Befehl: $ WINEPREFIX=/pfad/zum/prefix wine regedit /pfad/zu/file.reg
    • Im Treiber winewayland.drv wurde die Unterstützung für OpenGL und Pixelpuffer (pBuffer) hinzugefügt.
    • Probleme mit der Positionierung von Popup-Fenstern in Umgebungen auf Basis von Wayland wurden behoben.
    • Bei der Verwendung von Wayland wurde die Unterstützung für die Wiederholung von Tastendruck beim Halten von Tasten implementiert.
  • Integration mit dem Desktop
    • Ein experimenteller Mechanismus zur Emulation von "Modesetting" wurde hinzugefügt, der es ermöglicht, den Wechsel der Video-Modi zu simulieren, ohne die Bildschirm-Einstellungen tatsächlich zu ändern. Die Sichtbarkeit der Auflösungsänderung ohne Wechsel des Video-Modus erfolgt durch das Erweitern und Skalieren von Fenstern.
    • Ein neuer Applet Desktop Control Panel (desk.cpl) wurde hinzugefügt, mit einer Implementierung der Benutzeroberfläche zur Steuerung der Anzeigeeinstellungen (zum Beispiel kann die virtuelle Auflösung des Desktops geändert oder emulierte Anzeigeparameter konfiguriert werden).
    • Es wurde die Möglichkeit hinzugefügt, die Bildschirm-Einstellungen auf die Standardwerte zurückzusetzen, falls der Zustand nach einer unerwarteten Prozessbeendigung nicht wiederhergestellt werden kann.
    • Die Unterstützung zum Deaktivieren der Anzeige von Symbolen im System-Tray wurde hinzugefügt (in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" sollte "NoTrayItemsDisplay=1" angegeben werden).
    • Die Unterstützung zum Deaktivieren von Shell-Launcher im Desktop-Modus wurde hinzugefügt (in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" sollte "NoDesktop=1" angegeben werden).
  • Direct3D
    • Für die Verwendung von OpenGL ist nun die Unterstützung von GLSL 1.20 sowie die Erweiterungen EXT_framebuffer_object und ARB_texture_non_power_of_two erforderlich. Die Unterstützung des alten ARB-Shader-Backends und der OffscreenRenderingMode-Einstellungen wurde eingestellt.
    • Für Direct3D 9 und ältere Versionen wurde der grafische Pipeline von Fixed Function hinzugefügt (in älteren Direct3D gab es nur vordefinierte grafische Operationen, die nicht verändert werden konnten), implementiert mit der HLSL-Shader-Sprache und ermöglicht es, Fixed Functions beim Rendern über die Vulkan- oder OpenGL-API zu emulieren.
    • Beim Rendern mit Vulkan werden Vulkan-Erweiterungen verwendet, um den Zustand der grafischen Pipeline dynamisch zu ändern, was das Ruckeln in Spielen verringert.
    • Ein alternativer Backend glsl-vkd3d für GLSL-Shader wurde hinzugefügt, der vkd3d-shader verwendet.
    • Erste Unterstützung für die Kompilierung von Direct3D-Effekten unter Verwendung von vkd3d-shader bereitgestellt.
    • In der D3DX9-Bibliothek wurde die Möglichkeit zur Generierung von MIP-Texturen (MipMap) beim Laden von volumetrischen Texturen implementiert. Unterstützung für 64bpp RGBA- und 48bpp RGB-Farbdarstellungsformate in PNG-Bildern sowie für die Formate X8L8V8U8, A2W10V10U10, A8P8, V16U16 und Q16W16V16U16 wurde hinzugefügt.
  • Ton und Video
    • Als Alternative zu dem GStreamer-basierten Backend wurde ein neues Multimedia-Backend entwickelt, das auf FFmpeg basiert und für die Unterstützung des Media Foundation Frameworks geeignet ist. Um das alternative Backend zu aktivieren, fügen Sie im Registrierungsbereich „HKCU\Software\Wine\MediaFoundation“ den Eintrag „DisableGstByteStreamHandler=1“ hinzu.
    • Die Implementierung der Media Foundation API wurde verbessert und harmoniert jetzt besser mit Anwendungen, die von Demultiplexing- und Decoding-Komponenten abhängen.
    • Die DirectMusic API unterstützt jetzt das Laden von MIDI-Dateien.
  • Eingabegeräte
    • Eine erste Version des Bluetooth-Treibers wurde hinzugefügt.
    • Ein Applet für das Joystick-Steuerfeld (joy.cpl) mit Konfigurationseinstellungen für den Joystick wurde hinzugefügt.
    • Verbesserungen wurden für Zeigegeräte (Touchpads, Mäuse) vorgenommen, die das HID (Human Interface Device)-Protokoll verwenden. Ein Treiber für HID-Geräte, mouhid.sys, wurde hinzugefügt. Zudem wurde eine korrekte Verarbeitung zusammengesetzter Eingabegeräte implementiert, wodurch die Informationen darüber als separate Geräte in Windows-Anwendungen übermittelt werden.
    • Für das X11-Backend wurde die Unterstützung für Touchscreens hinzugefügt und die Nutzung des Multitouch-Modus wurde durch die Verarbeitung der Nachrichten WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE usw.) ermöglicht.
    • Die Implementierung einiger interner Strukturen der Bibliothek user32 im gemeinsamen Speicher hat die Leistung verbessert und die Belastung des Wine-Servers reduziert.
    • In winex11 wurde die Unterstützung für die Verarbeitung von XInput2-Ereignissen in Bezug auf separate Fenster hinzugefügt.
    • Korrekte Unterstützung für Tastaturen mit Dvorak-Layout wurde realisiert.
  • Kernel (Kernel-Schnittstellen von Windows)
    • Die Unterstützung für die Erhöhung der Privilegien von Prozessen wurde hinzugefügt (Einem ursprünglich mit normalen Benutzerrechten gestarteten Prozess können Administratorrechte gewährt werden). Bei der Erstellung von Serverprozessen (msi action server) sowie Prozessen, die die Funktionen RtlCreateUserProcess() und CreateProcessInternal() aufrufen, wird standardmäßig ein eingeschränkter Administrator-Token verwendet.
    • Bei der Abfrage von Informationen zu Plattenmarken wird jetzt, wenn möglich, auf die Systemdienste über DBus zugegriffen, anstatt zu versuchen, direkt auf das Gerät zuzugreifen.
    • Der unidirektionale Interprozesskommunikationsmechanismus (IPC) Mailslots ist jetzt direkt im Wine-Server implementiert, was eine vollständige Unterstützung der Windows-Semantik ermöglicht.
    • Die Ereigniswarteschlange für die serielle Schnittstelle wurde im asynchronen Modus implementiert.
    • Vollständige Unterstützung der Prozessorerweiterungen XSTATE in Thread-Kontexten wurde hinzugefügt, wodurch neue Vektor-Erweiterungen wie AVX-512 verwendet werden können.
  • Integrierte Anwendungen
    • Die Eingabeverarbeitung im Kommandozeileninterpreter cmd.exe wurde neu geschrieben. Unterstützung für die Operationen „||“ und „&&“ wurde in cmd.exe hinzugefügt.
    • Die Utility findstr unterstützt jetzt reguläre Ausdrücke und die Groß-/Kleinschreibung wird bei der Suche ignoriert.
    • Die Utilities regsvr32 und rundll32 erhalten die Möglichkeit zur Registrierung von ARM64EC-Modulen.
    • Neue Utilities hinzugefügt: sort zum Sortieren von Eingabedaten, fc zum Vergleich von Dateien und where zum Finden von Dateien.
    • Im wmic-Anwendung wurde ein interaktiver Modus implementiert.
    • Im Explorer wurde optionale Unterstützung für das Startmenü und die Symbolleiste hinzugefügt. Der Start von explorer.exe mit eingeschränkten Berechtigungen ist sichergestellt.
  • Entwicklungstools
    • Im winebuild wurde die Option „-marm64x“ zur Generierung hybrider ARM64X-Bibliotheken hinzugefügt.
    • Im winegcc wurde die Option „-marm64x“ hinzugefügt, die das Builden für ARM64X unterstützt.
    • In den aus der Interface Definition Language (IDL) generierten Dateien werden Komponenten verwendet, die die Ausführung im Interpretationsmodus vollständig unterstützen.
    • Der Compiler der Schnittstellendefinitionssprache IDL (Interface Definition Language) unterstützt jetzt die Generierung von Typbibliotheken (TypeLib) im alten Format (SLTG).
    • Das Tool winedump unterstützt jetzt das Speichern von Minidump-Tabellendumps, Informationen zu C++-Ausnahmen und Typbibliotheken.
  • Verschiedenes
    • Die Unterstützung des Diffie-Hellman-Schlüsselaustauschprotokolls (DH) wurde verbessert. Eine Konfigurations- und Abrufmöglichkeit für DH-Parameter wurde hinzugefügt. Handler wurden implementiert, um Paare aus öffentlichen und privaten Schlüsseln zu erstellen.
    • Die Verwendung von optimalem asymmetrischen Verschlüsselungspadding (OAEP) in Verbindung mit dem RSA-Algorithmus wurde sichergestellt.
    • Die API DirectPlay unterstützt jetzt Netzwerksitzungen.
    • Die Behandlung von Zuständen der asynchronen Ein-/Ausgabe im WoW64-Modus (64-Bit Windows-on-Windows) wurde eingerichtet, um 32-Bit Windows-Anwendungen in 64-Bit Unix-Systemen auszuführen.
    • Die Unterstützung für das Laden von ODBC-Treibern für Datenbanken, die unter Windows erstellt wurden, wurde hinzugefügt.
    • Für die ARM-Plattform wurde die vollständige Unterstützung für RPC/COM, C++ RTTI (Run-Time Type Information) und C++-Ausnahmen implementiert.
    • Im C-Laufzeitumfeld wurden die ANSI-Funktionen für die Unterstützung von UTF-8-Codierung implementiert.
    • Die Möglichkeiten des MSHTML-Engines wurden erweitert. Unterstützung für Prototypen und Objektkonstruktoren wurde hinzugefügt. Im JavaScript-Engine wurde eine neue Schnittstelle zur Objektbindung für MSHTML eingeführt. Eingebaute MSHTML-Funktionen wurden in gültige JavaScript-Objekte umgewandelt. Der Garbage Collector für JavaScript wurde verbessert und deckt nun alle Skriptausführungs-Kontexte im Thread ab. Unterstützung für JavaScript-Objekte ArrayBuffer und DataView wurde hinzugefügt.
    • Im kontinuierlichen Integrationssystem auf Basis von Gitlab wurde die Unterstützung für statische Analyse unter Verwendung von Clang und JUnit-Testberichten hinzugefügt.
    • Die Bibliothek Capstone 5.0.3 ist integriert, über die das Disassemblieren im WineDb-Debugger realisiert wird.
    • Die Komponenten wurden auf folgende neue Versionen aktualisiert: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 und Zlib 1.3.1.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster