Stabiele release Wine 7.0

Na een jaar ontwikkeling en 30 experimentele versies is de stabiele release van de open source implementatie van de Win32 API — Wine 7.0 — gepresenteerd, die meer dan 9100 wijzigingen bevat. Tot de belangrijkste prestaties van de nieuwe versie behoort de conversie van de meeste Wine-modules naar het PE-formaat, ondersteuning voor thema's, uitbreiding van de stack voor joysticks en invoerapparaten met een HID-interface, en de implementatie van de WoW64-architectuur voor het draaien van 32-bits programma's in een 64-bits omgeving.

In Wine is de volledige werking van 5156 (vorig jaar 5049) Windows-programma's bevestigd, en nog eens 4312 (vorig jaar 4227) programma's functioneren uitstekend bij extra instellingen en externe DLL's. Bij 3813 programma's (vorig jaar 3703) zijn kleine problemen opgemerkt die het gebruik van de belangrijkste toepassingen niet hinderen.

Belangrijkste vernieuwingen in Wine 7.0:

  • Modules in PE-formaat
    • Bijna alle DLL-bibliotheken zijn overgeschakeld naar het gebruik van het PE (Portable Executable)-formaat, dat in Windows wordt toegepast, in plaats van ELF. Het gebruik van PE lost problemen op met de ondersteuning van verschillende kopieerbeveiligingsschema's die een controle van de identiteit van systeummodules op schijf en in het geheugen uitvoeren.
    • De mogelijkheid om PE-modules te laten samenwerken met Unix-bibliotheken via het standaard systeema aanroep van de NT-kernel is gerealiseerd, waardoor toegang tot Unix-code voor Windows-debuggers kan worden verborgen en de registratie van threads kan worden gevolgd.
    • Ingebouwde DLL's worden nu alleen geladen als het bijbehorende PE-bestand op schijf aanwezig is, ongeacht of het een echte bibliotheek of een placeholder is. Deze wijziging stelt de toepassing in staat om altijd de correcte binding aan de PE-bestanden te zien. Om dit gedrag uit te schakelen kan de omgevingsvariabele WINEBOOTSTRAPMODE worden gebruikt.
  • WoW64
    • De WoW64-architectuur (64-bit Windows-on-Windows) is gerealiseerd, waardoor 32-bits Windows-toepassingen kunnen worden uitgevoerd in 64-bits Unix-processen. Ondersteuning is gerealiseerd via de aansluiting van een laag die 32-bits NT-systeema aanroepen omzet naar 64-bits aanroepen naar NTDLL.
    • De WoW64-lagen zijn voorbereid voor de meeste Unix-bibliotheken en stellen 32-bits PE-modules in staat om toegang te krijgen tot 64-bits Unix-bibliotheken. Na de voltooiing van de conversie van alle modules naar het PE-formaat, zal het mogelijk zijn om 32-bits Windows-toepassingen uit te voeren zonder dat 32-bits Unix-bibliotheken hoeven te worden geïnstalleerd.
  • Thema's
    • Ondersteuning voor thema's is geïmplementeerd. De set bevat de thema's 'Light', 'Blue' en 'Classic Blue', die via de configurator WineCfg kunnen worden geselecteerd.
    • Er is een mogelijkheid toegevoegd om de uitstraling van alle interface-elementen aan te passen via thema's. Automatische updates van de elementen worden verzorgd na een wisseling van thema.
    • Alle ingebouwde Wine-applicaties hebben ondersteuning voor thema's gekregen. De applicaties zijn aangepast voor schermen met hoge pixeldichtheid (High DPI).
  • Grafisch subsysteem
    • Er is een nieuwe Win32u-bibliotheek toegevoegd, waarin delen van de GDI32- en USER32-bibliotheken zijn samengevoegd die verband houden met graphicsverwerking en vensterbeheer op het kernniveau. In de toekomst zal er gewerkt worden aan het verplaatsen van drivercomponenten, zoals winex11.drv en winemac.drv, naar Win32u.
    • In de Vulkan-driver is ondersteuning geïmplementeerd voor de Vulkan 1.2.201-specificatie van de grafische API.
    • Ondersteuning voor het afgeven van gestreepte geometrische objecten via de Direct2D API is geleverd, met de mogelijkheid om een klik te verifiëren (hit-test).
    • In de Direct2D API is basissteun voor visuele effecten geïmplementeerd die worden toegepast met behulp van de ID2D1Effect-interface.
    • In de API van Direct2D is ondersteuning voor de ID2D1MultiThread-interface toegevoegd, die wordt gebruikt voor het organiseren van exclusieve toegang tot middelen in multithreaded applicaties.
    • In de WindowsCodecs-bibliotheek is ondersteuning voor het decoderen van afbeeldingen in WMP-formaat (Windows Media Photo) en het coderen van afbeeldingen in DDS-formaat (DirectDraw Surface) geïmplementeerd. De ondersteuning voor het coderen van afbeeldingen in ICNS-formaat (voor macOS), dat niet wordt ondersteund in Windows, is stopgezet.
  • Direct3D
    • De nieuwe rendering-engine, die Direct3D-aanroepen naar de Vulkan grafische API vertaalt, is aanzienlijk verbeterd. In de meeste situaties is het niveau van ondersteuning voor Direct3D 10 en 11 in de op Vulkan gebaseerde engine gelijkwaardig gemaakt aan de oude engine op basis van OpenGL. Voor het inschakelen van de rendering-engine via Vulkan moet de Direct3D-registerparameter 'renderer' worden ingesteld op 'vulkan'.
    • Veel functies van Direct3D 10 en 11 zijn geïmplementeerd, waaronder uitgestelde contexten (Deferred Contexts), die werken in de context van apparaten, statusobjecten, vaste offsets in buffers, opruimen van ongeordende weergaven van teksturen, en het kopiëren van gegevens tussen middelen in niet-getypeerde formaten (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), enz.
    • Ondersteuning voor multi-monitorconfiguraties is toegevoegd, waardoor gebruikers de monitor kunnen kiezen voor het weergeven van Direct3D-applicaties in volledig scherm.
    • De DXGI-API heeft de mogelijkheid voor gamma-correctie van het scherm geïmplementeerd, wat door applicaties op basis van Direct3D 10 en 11 kan worden gebruikt om de schermhelderheid aan te passen. Het ophalen van de tellerwaarden van virtuele framebuffers (SwapChain) is verzekerd.
    • In Direct3D 12 is ondersteuning voor root-signaturen versie 1.1 toegevoegd.
    • In de rendercode via de Vulkan-API zijn de efficiëntie van verwerken van verzoeken verhoogd wanneer de systeemondersteuning voor de extensie VK_EXT_host_query_reset aanwezig is.
    • De mogelijkheid om virtuele framebuffers (SwapChain) via GDI weer te geven is toegevoegd, wanneer OpenGL of Vulkan niet kan worden gebruikt, bijvoorbeeld bij het weergeven in een venster vanuit verschillende processen, zoals in programma's op basis van het Chromium Embedded Framework (CEF).
    • Bij het gebruik van de backend voor GLSL-shaders is ervoor gezorgd dat de modifier 'precise' wordt toegepast op shader-instructies.
    • In de DirectDraw-API is ondersteuning voor 3D-rendering in het systeemgeheugen toegevoegd, met gebruik van softwareapparaten zoals 'RGB', 'MMX' en 'Ramp'.
    • AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 en NVIDIA GT 1030 zijn aan de Direct3D-grafische kaartdatabase toegevoegd.
    • De sleutel 'UseGLSL' is verwijderd uit de register HKEY_CURRENT_USER\Software\Wine\Direct3D; in plaats daarvan moet vanaf Wine 5.0 'shader_backend' worden gebruikt.
    • Voor het ondersteunen van Direct3D 12 is nu de bibliotheek vkd3d vereist van minimaal versie 1.2.
  • D3DX
    • In de implementatie van D3DX 10 is de ondersteuning voor het framework voor visuele effecten verbeterd en is ondersteuning voor het afbeeldingsformaat Windows Media Photo (JPEG XR) toegevoegd.
    • De functies voor het creëren van texturen die in D3DX10 worden aangeboden zijn toegevoegd, zoals D3DX10CreateTextureFromMemory().
    • De interfaces ID3DX10Sprite en ID3DX10Font zijn gedeeltelijk geïmplementeerd.
  • Geluid en video
    • In de gezamenlijke backend WineGStreamer zijn de GStreamer-extensions voor DirectShow en het Media Foundation-framework samengevoegd, wat de ontwikkeling van nieuwe API's voor contentdecodering moet vereenvoudigen.
    • Op basis van de backend WineGStreamer zijn Windows Media-objecten geïmplementeerd voor zowel synchrone als asynchrone leesbewerkingen.
    • De implementatie van het Media Foundation-framework is verder verfijnd, met ondersteuning voor de functionaliteit van IMFPMediaPlayer, de sample allocator, verbeterde EVR-ondersteuning en rendering buffers voor SAR.
    • De bibliotheek wineqtdecoder, die een decoder voor het QuickTime-formaat biedt, is verwijderd; voor alle codecs wordt nu GStreamer gebruikt.
  • Invoerapparaten
    • De stack voor invoerapparaten die het HID (Human Interface Devices)-protocol ondersteunen, is aanzienlijk verbeterd. Dit omvat mogelijkheden zoals het parseren van HID-descriptoren, het verwerken van HID-berichten en het bieden van mini-drivers voor HID.
    • In de backends van de driver winebus.sys is de vertaling van apparaatspecificaties naar HID-berichten verbeterd.
    • Een nieuwe DirectInput-backend voor joysticks die het HID-protocol ondersteunen is toegevoegd. Er is mogelijkheid geïmplementeerd voor het gebruik van feedbackeffecten in joysticks. bedieningspaneel Geoptimaliseerde interactie met apparaten die compatibel zijn met XInput. In WinMM is de ondersteuning voor joysticks overgezet naar DInput in plaats van gebruik te maken van de evdev-backend in Linux en IOHID in macOS. De oude joystickdriver winejoystick.drv is verwijderd.
    • In de DInput-module zijn nieuwe tests toegevoegd die zijn gebaseerd op het gebruik van virtuele HID-apparaten en geen fysiek apparaat vereisen.
  • Tekst en lettertypen.
    • In DirectWrite is het object Font Set toegevoegd.
    • In RichEdit is de interface TextHost correct geïmplementeerd.
  • Kern (Windows kerninterfaces)
    • Bij het opstarten van een onbekend uitvoerbaar bestand in Wine (bijvoorbeeld 'wine foo.msi'), wordt nu start.exe aangeroepen, die de handlers oproept die zijn gekoppeld aan het bestandsype.
    • Ondersteuning voor de synchronisatiemechanismen NtAlertThreadByThreadId en NtWaitForAlertByThreadId is toegevoegd, die vergelijkbaar zijn met futexen in Linux.
    • Ondersteuning voor NT-debugobjecten is toegevoegd, die worden gebruikt voor het debuggen van kernel-functies.
    • Ondersteuning voor dynamische registersleutels is toegevoegd voor het opslaan van prestatiegegevens.
  • C Runtime
    • In de C runtime is een volledige set wiskundige functies geïmplementeerd, die hoofdzakelijk zijn overgebracht uit de Musl-bibliotheek.
    • Voor alle CPU-platforms is correcte ondersteuning voor functies voor zwevende-komma-berekeningen gegarandeerd.
  • Netwerkfunctionaliteiten
    • De compatibiliteitsmodus met Internet Explorer 11 (IE11) is verbeterd en wordt nu standaard gebruikt voor de verwerking van HTML-documenten.
    • In de mshtml-bibliotheek is JavaScript-modus ES6 (ECMAScript 2015) geïmplementeerd, met ondersteuning voor functionaliteiten zoals de let-expressie en het Map-object.
    • Het installeren van Wine MSI-pakketten met extensies voor de Gecko-engine in de werkdirectory wordt nu alleen gedaan indien nodig, in plaats van tijdens de update van Wine.
    • Ondersteuning voor het DTLS-protocol is toegevoegd.
    • De NSI (Network Store Interface)-service is geïmplementeerd. Deze service slaat informatie over routing en netwerkintefaces op en geeft deze door aan andere services op de computer.
    • API-handlers voor WinSock, zoals setsockopt en getsockopt, zijn verplaatst naar de NTDLL-bibliotheek en de afd.sys-driver om te voldoen aan de Windows-architectuur.
    • In de werkdirectory van Wine worden nu eigen bestanden met netwerken databases ingesteld, zoals /etc/protocols en /etc/networks, in plaats van te verwijzen naar soortgelijke Unix-databases.
  • Alternatieve platforms
    • Ondersteuning voor Apple-hardware op basis van ARM M1-chipsets (Apple Silicon) is toegevoegd.
    • Om ondersteuning te bieden voor BCrypt- en Secur32-functies op het macOS-platform is nu de installatie van de GnuTLS-bibliotheek vereist.
    • 32-bit uitvoerbare bestanden voor ARM-platforms worden nu opgebouwd in Thumb-2-modus, vergelijkbaar met Windows. Een preloader wordt gebruikt voor het laden van dergelijke bestanden.
    • Voor 32-bit ARM-platforms is ondersteuning voor exception unwinding geïmplementeerd.
    • Voor FreeBSD is het aantal ondersteunde low-level systeeminformatie verzoeken uitgebreid, zoals gegevens over geheugenstatus en acculading.
  • Ingebouwde toepassingen en ontwikkeltools
    • De reg.exe-tool heeft nu ondersteuning voor 32- en 64-bit weergaven van het register toegevoegd. Ondersteuning voor het kopiëren van register-sleutels is ook toegevoegd.
    • De WineDump-tool heeft nu ondersteuning voor het afdrukken van Windows-metadata-dumps en het weergeven van gedetailleerde informatie over CodeView-records toegevoegd.
    • In de Wine Debugger (winedbg) is de mogelijkheid om 32-bit processen vanuit een 64-bit debugger te debuggen geïmplementeerd.
    • De IDL-compiler (widl) heeft nu de mogelijkheid om bibliotheken die zijn ingebed in PE-bestanden te laden, ondersteuning voor WinRT-specifieke attributen en constructies, en implementatie van platformgebonden bibliotheekzoekopdrachten toegevoegd.
  • Bouwsysteem
    • In architectuurspecifieke mappen worden bibliotheken nu opgeslagen met namen die de architectuur en het type uitvoerbare bestanden weerspiegelen, zoals 'i386-windows' voor PE-formaten en 'x86_64-unix' voor unix-bibliotheken. Dit maakt ondersteuning voor verschillende architecturen in één Wine-installatie mogelijk en zorgt voor cross-compilatie van Winelib.
    • Voor het instellen van opties in de PE-bestandshanden die de overgang naar het gebruik van native DLL-bibliotheken regelen, is de '--prefer-native option' vlag aan winebuild toegevoegd (de verwerking van DLL_WINE_PREATTACH in DllMain is beëindigd).
    • Ondersteuning voor versie 4 van het Dwarf-debuggegevensformaat is toegevoegd, dat nu standaard wordt gebruikt bij het bouwen van Wine-bibliotheken.
    • Een bouwoptie '--enable-build-id' is toegevoegd om unieke bouw-id's in uitvoerbare bestanden op te slaan.
    • Ondersteuning voor het gebruik van de Clang-compiler in compatibiliteitsmodus met MSVC is toegevoegd.
  • Diversen
    • De naamgeving van standaardmappen in de gebruikersshell (Windows Shell) is aangepast aan het schema dat vanaf Windows Vista wordt toegepast, dat wil zeggen, in plaats van 'Mijn Documenten' wordt nu de map 'Documenten' aangemaakt en worden de meeste gegevens opgeslagen in de map 'AppData'.
    • In de laag voor de OpenCL-bibliotheek is ondersteuning voor de OpenCL 1.2-specificatie toegevoegd.
    • In de WinSpool-driver is ondersteuning voor verschillende paginaformaatopties bij het afdrukken toegevoegd.
    • Vroege ondersteuning voor MSDASQL, de Microsoft OLE DB-provider voor ODBC-drivers, is toegevoegd.
    • De Wine Mono-engine met de implementatie van het .NET-platform is bijgewerkt naar versie 7.0.0.
    • Unicode-gegevens zijn bijgewerkt naar de Unicode 14-specificatie.
    • In de broncode zijn de bibliotheken Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt en Zlib ingebouwd, die in PE-formaat worden samengesteld en geen Unix-versie vereisen. Deze bibliotheken kunnen ook vanuit het systeem worden geïmporteerd voor gebruik met externe builds in plaats van de ingebouwde PE-versies.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster