Stabile Version von Wine 11.0

Nach einem Jahr Entwicklung und 25 experimentellen Versionen wurde die stabile Version der Open-Source-Implementierung der Win32 API — Wine 11.0 — veröffentlicht, die über 6300 Änderungen und 600 Bugfixes umfasst. Zu den wichtigsten Neuerungen in dieser Version gehört die vollständige Unterstützung von NTSYNC, die Implementierung des Reparse Point-Mechanismus und die Nutzung einer neuen Umsetzung der WoW64-Architektur.

In Wine ist die vollständige Unterstützung von 5419 Windows-Programmen bestätigt (vor einem Jahr waren es 5372, vor zwei Jahren 5336, vor drei Jahren 5266). Weitere 4500 Programme (vor einem Jahr 4435, vor zwei Jahren 4397, vor drei Jahren 4370) arbeiten hervorragend mit zusätzlichen Einstellungen und externen DLLs. Bei 4086 Programmen (vor einem Jahr 4020, vor zwei Jahren 3943, vor drei Jahren 3888) treten kleine Probleme auf, die jedoch die Nutzung der Hauptfunktionen der Anwendungen nicht beeinträchtigen.

Hauptneuerungen in Wine 11.0:

  • Umfassende Unterstützung des ntsync-Treibers, der die Leistung von unter Wine ausgeführten Windows-Spielen erheblich steigert. Der Treiber ist seit der Version 6.14 Teil des Linux-Kernels und implementiert das symbolische Gerät /dev/ntsync sowie eine Reihe von Synchronisationsprimitive, die im Windows NT-Kernel verwendet werden. Eine signifikante Leistungssteigerung wird durch die Eliminierung der Overheads erreicht, die mit der Verwendung von RPC im Benutzerspeicher verbunden sind.
  • Die Möglichkeit zur Anpassung der Thread-Prioritäten in Linux und macOS wurde hinzugefügt.
  • In ntdll wurde die Synchronisations-API „Synchronization barriers“ hinzugefügt, die es ermöglicht, die Ausführung mehrerer Threads bis zu einem bestimmten Ausführungspunkt in allen Threads anzuhalten (zum Beispiel um sicherzustellen, dass alle Threads einen bestimmten Punkt erreichen, während sie denselben Code parallel ausführen).
  • Die neue Implementierung der WoW64-Schicht (64-Bit Windows-on-Windows) wurde vollständig unterstützt und ermöglicht das Ausführen von 32-Bit Windows-Anwendungen auf 64-Bit Unix-Systemen. Im Gegensatz zur alten WoW64-Implementierung, bei der 32-Bit-Anwendungen in 32-Bit Unix-Prozessen ausgeführt wurden, ermöglicht das neue WoW64 die Ausführung von 32-Bit-Code innerhalb eines 64-Bit-Prozesses. Zudem wurde die Unterstützung für die Ausführung von 16-Bit-Anwendungen im WoW64-Modus realisiert.

    In allen Modulen, die auf Unix-Bibliotheken zugreifen, werden die WoW64-Systemaufruf-Konverter (thunk) verwendet, die es 32-Bit-Modulen im PE-Format ermöglichen, auf 64-Bit Unix-Bibliotheken zuzugreifen. Darüber hinaus wurde die Möglichkeit hinzugefügt, alte WoW64-Installationen im neuen Modus durch Setzen der Umgebungsvariable „WINEARCH=wow64“ auszuführen. 32-Bit-Präfixe, die beim Setzen von WINEARCH=win32 erstellt werden, gelten als veraltet und werden im neuen WoW64-Modus nicht mehr unterstützt. Es wurde ein separater wine64-Loader entfernt, stattdessen wird ein universeller Loader verwendet, der den Modus anhand der Bitbreite der ausführbaren Datei bestimmt.

  • Kernel (Kernel-Schnittstellen von Windows)
    • Der Reparse Point-Mechanismus wurde implementiert, mit dem zusätzliche, über Tags identifizierbare Daten an Dateien und Verzeichnisse angehängt werden können. Unterstützt werden Arten von Reparse Points wie symbolische Links und Montagepunkte.
    • Zur Verbesserung der Leistung beim Verfolgen von Schreibvorgängen in den Speicher wurde der UFFD-Mechanismus (userfaultfd) aktiviert, der es ermöglicht, Handler für Zugriffe auf nicht zugewiesene Speicherseiten (page faults) im Benutzerspeicher zu erstellen. In durchgeführten Tests reduzierte der Einsatz von UFFD die Ladezeiten in dem Spiel 'Streets of Rage 4' von 6-8 Sekunden auf 1,5-2 Sekunden, was mit den Startwerten auf der Windows-Plattform übereinstimmt.
    • Die NT-Systemaufrufnummern, die den neuesten Windows-Versionen entsprechen, werden verwendet, was notwendig ist, um Anwendungen zu unterstützen, die feste Systemaufrufnummern verwenden.
    • Auf ARM64-Systemen wurde die Möglichkeit implementiert, 4K-Speicherseiten in Umgebungen mit Linux-Kernen, die größere Speicherseiten (16K oder 64K) nutzen, zu simulieren. Die Simulation ermöglicht das Ausführen einfacher Anwendungen; für komplexere Programme wird die Verwendung von Linux-Kernen mit 4-Kilobyte-Speicherseiten empfohlen.
  • Grafiksubsystem
    • Auf X11-Systemen (winex11) wird für OpenGL standardmäßig ein Rendering-Backend verwendet, das EGL nutzt. Das GLX-Backend ist als veraltet gekennzeichnet, bleibt aber als Backup verfügbar und wird verwendet, wenn EGL nicht vorhanden ist.
    • Es wurde eine erste Unterstützung für D3DKMT-Objekte hinzugefügt, die den Zugriff auf Grafikhardware aus dem Benutzerspeicher ermöglichen. Vulkan-Erweiterungen VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 und VK_KHR_win32_keyed_mutex wurden implementiert.
    • Im WoW64-Modus (64-Bit Windows-on-Windows) wurde die Unterstützung für das Speichermapping für OpenGL mithilfe der Vulkan-API implementiert, um die Leistung von 32-Bit OpenGL-Anwendungen in Wine zu beschleunigen.
    • Eine Emulation des Front Buffers für OpenGL wurde auf Plattformen ohne integrierte Unterstützung implementiert.
    • Der Treiber für die Vulkan-API hat die Unterstützung für die Vulkan-Spezifikation 1.4.335 erhalten.
    • Im Paket der WindowsCodecs-Bibliotheken wurde die Unterstützung für Metadaten in Bilddateien erweitert, sowie die Umwandlung zwischen Ganzzahlformaten und Gleitkommaformaten für Farbdarstellung implementiert.
    • Die Abhängigkeit von der OSMesa-Bibliothek (Off-screen Mesa) wurde entfernt. Es wurde die Möglichkeit realisiert, Bitmaps über OpenGL mit hardwarebeschleunigtem OpenGL-Runtime zu rendern.
  • Integration mit dem Desktop
    • Im Treiber winewayland.drv, der die Verwendung von Wine in Umgebungen auf Basis des Wayland-Protokolls ohne XWayland und X11-Komponenten ermöglicht, wurde die Unterstützung für die Zwischenablage, Eingabemethoden, unregelmäßige Fenster und Transparenz implementiert.
    • Die Integration mit X11 wurde verbessert: Es wird die Übermittlung von Aktivierungsanforderungen an den Fensterverwalter ermöglicht und das EWMH-Protokoll zur Abstimmung des Status aktiver X11- und Win32-Fenster verwendet.
    • Die Unterstützung für den exklusiven Vollbildmodus wurde implementiert. Die Unterstützung des Vollbildmodus in D3D wurde verbessert, sowie die Leistung älterer Spiele auf Basis von DDraw.
    • Die Leistung einiger Fensterverwaltungsfunktionen wurde gesteigert. Für die Interprozesskommunikation wurde ein gemeinsamer Speicher verwendet.
  • Direct3D
    • In Direct3D 11 wurde die Unterstützung für hardwarebeschleunigte Dekodierung von H.264-Videos hinzugefügt, realisiert über die Grafik-API Vulkan.
    • Direct3D 11 bietet Unterstützung für die Minmax-Filterung von Texturen unter Verwendung der OpenGL-Erweiterung GL_ARB_texture_filter_minmax oder der Vulkan-Erweiterung VK_EXT_sampler_filter_minmax.
    • In Direct3D 11 wurden Funktionen zum Laden von Texturen implementiert.
    • Eine Vielzahl von Direct3D-Funktionen wurde bei der Darstellung über Vulkan realisiert, wie z.B. Vertex-Mischung, flaches Schattieren, benutzerdefinierte Clipping-Ebenen und verschiedene Ressourcenformate.
    • Die integrierte Kopie von vkd3d-shader verbessert die Unterstützung für Shader-Modelle 1, 2 und 3.
    • Im Methode D3DXSaveSurfaceToFileInMemory wurde die Unterstützung für die Formate PNG, JPEG und BMP implementiert.
    • In Direct3D 10 und 11 wurde die Unterstützung für die Komprimierung und Dekomprimierung der Formate BC4 und BC5 sowie die Generierung von MIP-Levels (MipMap) beim Laden von Texturen hinzugefügt.
    • Die Methoden ID3DXEffect::SetRawValue() und ID3DXSkinInfo::UpdateSkinnedMesh() wurden implementiert.
  • Eingabegeräte
    • Die Kompatibilität mit Joysticks wurde durch die Verwendung des hidraw-Backends verbessert.
    • Die Unterstützung für das Vibrationseffekt (Force Feedback) bei der Nutzung von Gaminglenkrädern und Joysticks wurde verbessert.
    • Die Unterstützung für Gamepads in der API Windows.Gaming.Input und bei Verwendung des evdev-Backends wurde verbessert.
    • Im Steuerungs-Applet für Spielcontroller wurde ein Tab zur Konfiguration der API Windows.Gaming.Input hinzugefügt.
    • Die Kompatibilität von DirectInput mit älteren Spielen wurde verbessert.
  • Bluetooth
    • Im Bluetooth-Treiber wurde die Möglichkeit hinzugefügt, Geräte zu scannen, die Entdeckung zu konfigurieren und Verbindungen herzustellen.
    • Unterstützung für Bluetooth Low Energy-Dienste wurde hinzugefügt.
    • Anwendungen haben nun die Möglichkeit, low-level RFCOMM-Verbindungen mit externen Geräten über die Winsock-API herzustellen.
  • Unterstützung für Scanner
    • Die Unterstützung für die API TWAIN 2.0 wurde implementiert, die den Zugriff auf Scanner aus 64-Bit-Anwendungen ermöglicht.
    • Die Unterstützung für die Komponente DAT_IMAGENATIVEXFER zur Übertragung von Bildern vom Scanner in die Anwendung wurde realisiert.
    • Es wird sichergestellt, dass der ausgewählte Scanner und die Scanner-Einstellungen im Register gespeichert werden.
    • Die Unterstützung für das mehrseitige Scannen und die automatische Dokumentenzuführung wurde hinzugefügt.
    • Die Blockierung der Anwendung während des Aufrufs der Scanoberfläche wurde aufgehoben.
    • Die Unterstützung für die Installation nativer Windows-Treiber für Scanner wurde hinzugefügt.
  • Internationalisierung
    • Die Generierung der Datenbank der Lokalisierungen im Format locale.nls aus der Unicode CLDR-Datenbank (Unicode Common Locale Data Repository) Version 48 wurde sichergestellt. Unterstützung für zusätzliche Lokalisierungen bua-RU, bqi-IR, cop-EG, ht-HT, kek-GT, lzz-TR, mww-Hmnp-US, oka-CA, pi-Latn-GB, pms-IT, sgs-LT, suz-Deva-NP und suz-Sunu-NP wurde hinzugefügt.
    • Die Unicode-Zeichentabellen wurden auf die Version 17.0.0 des Standards aktualisiert. Die Zeitzonendatenbank wurde ebenfalls aktualisiert.
  • Netzwerkfunktionen
    • Im MSHTML-Engine im Standards-Modus wird jetzt die Verarbeitung von Elementattributen als vollständige DOM-Knoten unterstützt. Die Objekte DOMParser, XDomainRequest und msCrypto wurden implementiert.
    • JavaScript hat die Unterstützung für typisierte Arrays hinzugefügt.
    • Für ICMPv6 wurde der Befehl ping implementiert.
  • Datenbank
    • Die MSADO-Bibliothek (ActiveX Data Objects) erhielt Unterstützung für die Aufzeichnung von Änderungen in der Datenbank. Die meisten Funktionen des Objekts Recordset wurden implementiert.
    • In der Bibliothek odbc32 wurde die Unterstützung für ANSI Win32-Treiber, die nicht für die Arbeit mit Unicode ausgelegt sind, verbessert. Die Funktionen SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLStatisticsW() und SQLColumnsW() wurden implementiert.
  • Integrierte Anwendungen
    • In WineCfg wurde ein Tab hinzugefügt, um das Standard-MIDI-Gerät einzustellen.
    • In der cmd-Dienstprogramm wurde die Eingabeautovervollständigung für Dateinamen im interaktiven Modus implementiert, die Unterstützung komplexer Anweisungen hinzugefügt, und der Befehl „mklink /j“ zur Erstellung von Reparse Points wurde implementiert.
    • Im conhost-Dienstprogramm (Console Hosting) wurde die Unterstützung für die Historie durch Drücken der Tasten F1 und F3 hinzugefügt.
    • Die Befehle timeout, runas und subst wurden implementiert.
    • Im find-Dienstprogramm wurden die Optionen „/c“ zum Anzeigen der Anzahl der Übereinstimmungen und „/i“ für die Groß-/Kleinschreibung ignorierenden Vergleiche hinzugefügt.
    • Das Tool whoami bietet nun die Möglichkeit, das Ausgabeformat anzupassen.
  • Verschiedenes
    • Die Implementierung der Schnittstellensprache WIDL (Wine Interface Definition Language) unterstützt jetzt die Generierung von Windows Runtime (WinRT) Metadaten. Es wird die Generierung und Installation von WinMD (Windows Metadata) Dateien für die WinRT API sichergestellt.
    • In das Tool winedump wurde die Unterstützung für das Dumpen von MUI-Ressourcen, Systemaufrufnummern, integrierten NE-Modulen und großen PDB-Dateien (> 4 GB) hinzugefügt.
    • Der Code der Common Control Implementierung wurde refaktoriert. Die COMCTL32-Bibliothek wurde in separate Module für die Versionen 5 und 6 aufgeteilt.
    • In BCrypt wurde die Unterstützung des PBKDF2 Schlüsselerzeugungsstandards hinzugefügt.
    • Die Unterstützung für die Verzeichnisse UserProgramFiles, AccountPictures und Screenshots wurde hinzugefügt.
    • In die Distribution wurden die Bibliotheken LLVM Compiler-RT 8.0.1 und TomCrypt 1.18.2 integriert. Für die CPU-Erkennung auf der FreeBSD-Plattform wird die HwLoc-Bibliothek verwendet.
    • Die Komponenten Vkd3d 1.18, Faudio 25.12, FluidSynth 2.4.2, LCMS2 2.17, LibMPG123 1.33.0, Libpng 1.6.51, LibTiff 4.7.1, LibXml2 2.12.10 und LibXslt 1.1.43 wurden auf neue Versionen aktualisiert.

    Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster