Nach einem Jahr Entwicklung und 29 experimentellen Versionen wurde eine stabile Version der offenen Implementierung der Win32-API – Wine 10.0, vorgestellt, die mehr als 6000 Änderungen beinhaltete. Zu den wichtigsten Errungenschaften der neuen Version gehören die vollständige Unterstützung der ARM64EC-Architektur, die Skalierung auf Bildschirmen mit hoher Pixeldichte, die standardmäßige Einbindung des Wayland-Treibers, die Implementierung von Panels zum Einrichten von Bildschirm und Joystick, ein alternatives Multimedia-Backend auf Basis von FFmpeg und Bluetooth Treiber, Vulkan 1.4-Unterstützung, Emulationsfunktion zum Umschalten der Videomodi.
Es wurde bestätigt, dass 5372 Programme in Wine ordnungsgemäß funktionieren. Windows (5336 vor einem Jahr, 5266 vor zwei Jahren, 5156 vor drei Jahren), weitere 4435 Programme (4397 vor einem Jahr, 4370 vor zwei Jahren, 4312 vor drei Jahren) funktionieren mit zusätzlichen Einstellungen und externen DLLs einwandfrei. 4020 Programme (3943 vor einem Jahr, 3888 vor zwei Jahren, 3813 vor drei Jahren) weisen kleinere Probleme auf, die die Kernfunktionalität der Anwendung jedoch nicht beeinträchtigen.
Wichtige Neuerungen in Wine 10.0:
- ARM64
- Für die ARM64EC-Architektur (ARM64 Emulation Compatible) wird volle Unterstützung bereitgestellt, wobei der Grad der Unterstützung in Wine mit der ARM64-Architektur gleichauf ist. Die ARM64EC-Architektur soll die Portierung von ursprünglich für x64_86-Systeme geschriebenen Anwendungen auf ARM64-Systeme vereinfachen und ermöglicht die Ausführung einzelner x64_86-Codemodule in der ARM64-Umgebung mithilfe eines Emulators.
- Für das ARM64X PE-Dateiformat wurde vollständige Unterstützung implementiert, die es Ihnen ermöglicht, Code für die ARM64EC- und ARM64-Architekturen in einer ausführbaren Datei zu kombinieren. Um Wine im ARM64X-Format zu erstellen, müssen Sie LLVM von Git installieren (die erforderliche Funktionalität wird in der LLVM 20-Version enthalten sein) und beim Ausführen des „configure“-Skripts die Option „-enable-archs=arm64ec,aarch64“ angeben .
- Eine Schnittstelle zur Emulation von 64-Bit-x86-Systemen wurde implementiert. Bei Verwendung von ARM64EC läuft Wine selbst unverändert und die Emulation wird nur auf x86-64-Anwendungscode angewendet. Die Bibliothek mit dem Emulator ist noch nicht im Hauptpaket von Wine enthalten, aber um x86-64-Code in der ARM64-Umgebung auszuführen, können Sie den externen FEX-Emulator verwenden, der mit ARM64EC-Unterstützung erstellt wurde.
- Die ARM64-Unterstützung erfordert, dass das System gemäß der ABI 4-KB-Speicherseiten verwendet. Windows (läuft in Umgebungen mit Kerneln) LinuxDie Verwendung von 16K- oder 64K-Speicherseiten wird noch nicht unterstützt.
- Grafisches Subsystem
- Genauere Skalierung auf Bildschirmen mit hoher Pixeldichte (High-DPI) implementiert. Es wurde Unterstützung für den DPI-Awareness-Modus bereitgestellt, um die Anzeige von Anwendungen auf Bildschirmen mit hoher Pixeldichte zu organisieren und dabei zu berücksichtigen, ob die Anwendung die Anpassung an DPI-Änderungen unterstützt oder nicht (Anwendungen, die DPI nicht berücksichtigen, werden automatisch skaliert). Optionen hinzugefügt, um die High-DPI-Unterstützung für einzelne Anwendungen oder Wine-Präfixe zu überschreiben.
- Dem Treiber für die Vulkan-Grafik-API wurde Unterstützung für die Spezifikation Vulkan 1.4 hinzugefügt (Vulkan 9.0 wurde in Wine 1.3.272 unterstützt). Unterstützung für Vulkan-Erweiterungen für Videokodierung und -dekodierung hinzugefügt.
- Bei Verwendung des X11-Backends wurde die Möglichkeit implementiert, untergeordnete Vulkan-Fenster für Anwendungen zu rendern, die solche Fenster zur Anzeige von 3D-Inhalten verwenden (zuvor war eine solche Funktion nur für OpenGL verfügbar).
- Der GdiPlus-Bibliothek wurde Unterstützung für den Schriftartenverknüpfungsmechanismus hinzugefügt, der es Ihnen ermöglicht, bei der Textanzeige mehrere Schriftarten zu verwenden, wenn keine Schriftarten vorhanden sind, die alle im Text vorkommenden Zeichen separat abdecken.
- Wayland
- Die Standardkonfiguration enthält den Treiber winewayland.drv, der es Wine ermöglicht, in Wayland-basierten Umgebungen ohne XWayland- oder X11-Komponenten zu laufen. Wine startet Standardanwendungen nur dann direkt unter Wayland, wenn XWayland nicht verfügbar ist; andernfalls wird XWayland bevorzugt gestartet. Um Wayland zu erzwingen, können Sie die Umgebungsvariable DISPLAY verwenden oder einen Registrierungsschlüssel hinzufügen, indem Sie eine Datei namens file.reg erstellen. Windows Registry-Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics" = "wayland" und wenden Sie die Änderung mit folgendem Befehl an: $ WINEPREFIX = /Pfad/zum/Präfix wine regedit /Pfad/zur/Datei.reg
- Unterstützung für OpenGL und Pixelpuffer (pBuffer) zum winewayland.drv-Treiber hinzugefügt.
- Probleme mit der Positionierung von Popup-Fenstern in Wayland-basierten Umgebungen behoben.
- Bei Verwendung von Wayland ist die Unterstützung für die automatische Wiederholung beim Drücken von Tasten implementiert.
- Desktop-Integration
- Es wurde ein experimenteller „Moduseinstellungs“-Emulationsmechanismus hinzugefügt, der es Ihnen ermöglicht, den Wechsel des Videomodus zu emulieren, ohne die Bildschirmeinstellungen tatsächlich zu ändern. Die Sichtbarkeit der Änderung der Bildschirmauflösung ohne Wechsel des Videomodus wird durch Erweitern und Skalieren von Fenstern geschaffen.
- Mit der Implementierung einer Schnittstelle zum Verwalten von Anzeigeeinstellungen wurde ein neues Desktop-Systemsteuerungs-Applet (desk.cpl) hinzugefügt (Sie können beispielsweise die virtuelle Auflösung des Desktops ändern oder emulierte Anzeigeparameter konfigurieren).
- Es wurde die Möglichkeit hinzugefügt, die Bildschirmeinstellungen auf die Standardwerte zurückzusetzen, wenn es nach einem Prozessabsturz nicht möglich ist, den Zustand wiederherzustellen.
- Unterstützung für das Deaktivieren der Anzeige von Symbolen in der Taskleiste hinzugefügt (in "HKLM\Software\Microsoft\WindowsDer Ordner "\CurrentVersion\Policies\Explorer" sollte "NoTrayItemsDisplay=1") angeben.
- Unterstützung zum Deaktivieren von Shells (Shell-Launcher) im Desktop-Modus hinzugefügt (in "HKLM\Software\Microsoft\WindowsDer Ordner "\CurrentVersion\Policies\Explorer" sollte "NoDesktop=1") angeben.
- Direct3D
- Das Rendern mit OpenGL erfordert jetzt Unterstützung für GLSL 1.20 sowie die Erweiterungen EXT_framebuffer_object und ARB_texture_non_power_of_two. Die Unterstützung für das alte ARB-Shader-Backend und die OffscreenRenderingMode-Einstellung wurde eingestellt.
- Für Direct3D 9 und älter wurde eine Grafikpipeline mit festen Funktionen hinzugefügt (älteres Direct3D bot nur vordefinierte Grafikoperationen, die nicht geändert werden konnten), die mithilfe der HLSL-Shader-Sprache implementiert wurde und die Emulation fester Funktionen beim Rendern über die Vulkan- oder OpenGL-API ermöglicht.
- Beim Rendern mit Vulkan werden Vulkan-Erweiterungen verwendet, um den Status der Grafikpipeline dynamisch zu ändern und so das Stottern in Spielen zu reduzieren.
- Alternatives glsl-vkd3d-Backend für GLSL-Shader mit vkd3d-shader hinzugefügt.
- Bereitstellung erster Unterstützung für das Kompilieren von Direct3D-Effekten mit vkd3d-shader.
- Die D3DX9-Bibliothek implementiert die Möglichkeit, beim Laden volumetrischer Texturen MIP-Texturen (MipMap) zu generieren. Unterstützung für die Farbdarstellungsformate 64bpp RGBA und 48bpp RGB in PNG-Bildern sowie die Formate X8L8V8U8, A2W10V10U10, A8P8, V16U16 und Q16W16V16U16 hinzugefügt.
- Ton und Video
- Als Alternative zum GStreamer-basierten Backend wird ein neues Multimedia-Backend implementiert, das auf der Verwendung von FFmpeg basiert und für die Ausführung des Media Foundation-Frameworks geeignet ist. Um ein alternatives Backend zu aktivieren, sollten Sie „DisableGstByteStreamHandler=1“ im Registrierungsabschnitt „HKCU\Software\Wine\MediaFoundation“ angeben.
- Die Implementierung der Media Foundation API wurde verbessert, um Anwendungen, die auf Demultiplex- und Decodierungskomponenten angewiesen sind, besser zu unterstützen.
- Die DirectMusic-API bietet Unterstützung für das Laden von MIDI-Dateien.
- Eingabegeräte
- Erste Version des Bluetooth-Treibers hinzugefügt.
- Joystick-Systemsteuerungs-Applet (joy.cpl) mit Implementierung von Einstellungen für den Joystick hinzugefügt.
- Verbesserungen wurden an Eingabegeräten (Touchpads, Mäusen) mit HID-Protokoll (Human Interface Device) vorgenommen. Der Treiber mouhid.sys für HID-Geräte wurde hinzugefügt. Die korrekte Verarbeitung von zusammengesetzten Eingabegeräten wurde implementiert, und Informationen darüber werden nun übertragen an Windows-Anwendungen, als separate Geräte.
- Für das X11-Backend wurde Unterstützung für Touchscreens hinzugefügt und die Möglichkeit zur Nutzung des Multitouch-Modus durch Verarbeitung von WM_POINTER*-Nachrichten (WM_POINTERENTER, WM_POINTERLEAVE usw.) implementiert.
- Die Platzierung einiger interner Strukturen der user32-Bibliothek im gemeinsam genutzten Speicher wurde implementiert, was die Leistung erhöhte und die Belastung von Wine Server verringerte.
- Winex11 hat Unterstützung für die Verarbeitung von XInput2-Ereignissen in Bezug auf einzelne Fenster hinzugefügt.
- Korrekte Unterstützung für Tastaturen mit dem Dvorak-Layout implementiert.
- Kernel (Kernel-Schnittstellen) Windows)
- Unterstützung für die Eskalation von Prozessberechtigungen hinzugefügt (einem Prozess, der zunächst als Standardbenutzer ausgeführt wird, können Administratorrechte gewährt werden). Beim Erstellen von Serverprozessen (MSI-Aktionsserver) sowie von Prozessen, die die Funktionen RtlCreateUserProcess() und CreateProcessInternal() aufrufen, ist standardmäßig ein eingeschränktes Administrator-Token aktiviert.
- Beim Abrufen von Informationen über Datenträgeretiketten wird jetzt, wann immer möglich, der Zugriff auf Systemdienste über DBus verwendet, anstatt zu versuchen, direkt auf das Gerät zuzugreifen.
- Der Mailslots-Mechanismus zur unidirektionalen Interprozesskommunikation (IPC) ist nun direkt im Wine-Server implementiert und ermöglicht so die vollständige semantische Unterstützung. Windows.
- Warten auf Ereignisse der seriellen Schnittstelle im asynchronen Modus implementiert.
- Vollständige Unterstützung für XSTATE-Prozessorerweiterungen in Thread-Kontexten hinzugefügt, was die Verwendung neuer Vektorerweiterungen wie AVX-512 ermöglicht.
- Eingebettete Anwendungen
- Die im Befehlsinterpreter cmd.exe verwendete Eingabedatenverarbeitungs-Engine wurde neu geschrieben. Unterstützung für „||“-Operationen zu cmd.exe hinzugefügt Und "&&".
- Das Dienstprogramm findstr hat Unterstützung für reguläre Ausdrücke und Suchvorgänge ohne Berücksichtigung der Groß-/Kleinschreibung hinzugefügt.
- Den Dienstprogrammen regsvr32 und rundll32 wurde die Möglichkeit hinzugefügt, ARM64EC-Module zu registrieren.
- Hinzugefügte Dienstprogramme: sort zum Sortieren von Eingabedaten, fc zum Vergleichen von Dateien und where zum Durchsuchen von Dateien.
- Die wmic-Anwendung implementiert einen interaktiven Betriebsmodus.
- Explorer hat optionale Unterstützung für das Startmenü und die Symbolleiste hinzugefügt. Start von explorer.exe mit reduzierten Zugriffsrechten ermöglicht.
- Entwicklungswerkzeuge
- Option „-marm64x“ zu winebuild hinzugefügt, um ARM64X-Hybridbibliotheken zu generieren.
- Option „-marm64x“ zu winegcc hinzugefügt, um das Erstellen für ARM64X zu ermöglichen.
- Mit der Interface Definition Language (IDL) generierte Dateien verwenden Komponenten, die die Ausführung im interpretierten Modus vollständig unterstützen.
- Dem IDL-Compiler (Interface Definition Language) wurde Unterstützung für die Generierung von Typbibliotheken (TypeLib) im alten Format (SLTG) hinzugefügt.
- Das Dienstprogramm winedump bietet jetzt Unterstützung für das Speichern von Dumps von Minidump-Tabellen, C++-Ausnahmeinformationen und Typelib-Ressourcen.
- Verschiedene
- Verbesserte Unterstützung für das Schlüsselaustauschprotokoll Diffie-Hellman (DH). Es wurde die Möglichkeit hinzugefügt, DH-Parameter zu konfigurieren und zu empfangen. Implementierte Handler zum Erstellen von Paaren aus öffentlichen und privaten Schlüsseln.
- Die Verwendung von inkrementellem Padding OAEP (Optimal Asymmetric Encryption Padding) zusammen mit dem RSA-Algorithmus ist vorgesehen.
- Die DirectPlay-API unterstützt Netzwerksitzungen.
- Verbesserte Handhabung asynchroner Eingabe-/Ausgabezustände beim Arbeiten im WoW64-Modus (64-Bit). Windows-auf-Windows), wodurch Sie 32-Bit-Systeme ausführen können Windows-Anwendungen auf 64-Bit-Unix-Systemen.
- Unterstützung für das Laden von ODBC-Treibern für DBMS hinzugefügt, die für Windows.
- Für die ARM-Plattform ist volle Unterstützung für RPC/COM, C++ RTTI (Run-Time Type Information) und C++-Ausnahmen implementiert.
- In der C-Laufzeit implementieren ANSI-Funktionen die Unterstützung für UTF-8-Codierung.
- Die Fähigkeiten der MSHTML-Engine wurden erweitert. Unterstützung für Prototypen und Objektkonstruktoren hinzugefügt. Der JavaScript-Engine wurde eine neue Objektbindungsschnittstelle für MSHTML hinzugefügt. Integrierte MSHTML-Funktionen wurden in gültige JavaScript-Objekte konvertiert. Verbesserte JavaScript-Garbage Collection, um alle Skriptausführungskontexte in einem Thread abzudecken. Unterstützung für ArrayBuffer- und DataView-JavaScript-Objekte hinzugefügt.
- Dem Gitlab-basierten kontinuierlichen Integrationssystem wurde Unterstützung für statische Analysen mithilfe von Clang- und JUnit-Testberichten hinzugefügt.
- Die Capstone 5.0.3-Bibliothek ist in das Paket integriert, über die die Disassemblierung im WineDb-Debugger implementiert wird.
- Auf neue Versionen aktualisierte Komponenten: 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.
Source: opennet.ru
