Stabiele release van Wine 11.0

Na een jaar ontwikkeling en 25 experimentele versies is de stabiele release van de open implementatie van de Win32 API - Wine 11.0 gepresenteerd, die meer dan 6300 wijzigingen en 600 bugfixes omvat. Tot de belangrijkste prestaties in de nieuwe versie behoort de volledige ondersteuning van NTSYNC, de implementatie van het Reparse Point mechanisme en de inzet van een nieuwe implementatie van de WoW64-architectuur.

In Wine is de volledige werking van 5419 Windows-programma's bevestigd (een jaar geleden 5372, twee jaar geleden 5336, drie jaar geleden 5266), daarnaast werken nog eens 4500 programma's (een jaar geleden 4435, twee jaar geleden 4397, drie jaar geleden 4370) prima met aanvullende instellingen en externe DLL's. Bij 4086 programma's (een jaar geleden 4020, twee jaar geleden 3943, drie jaar geleden 3888) zijn er kleine problemen met de werking, die het gebruik van de belangrijkste functies van de applicaties niet belemmeren.

Belangrijkste vernieuwingen in Wine 11.0:

  • Volledige ondersteuning van de ntsync-driver, die de prestaties van Windows-games die via Wine worden uitgevoerd, aanzienlijk kan verbeteren. De driver is opgenomen in de Linux-kernel sinds versie 6.14 en implementeert het symbolische apparaat /dev/ntsync en een set primitieve synchronisatiefuncties die worden gebruikt in de Windows NT-kernel. Een significante prestatieverbetering wordt bereikt door het verminderen van overheadkosten die verband houden met het gebruik van RPC in de gebruikersruimte.
  • De mogelijkheid om threadprioriteiten in Linux en macOS in te stellen is toegevoegd.
  • In ntdll is de synchronisatie-API 'Synchronization barriers' toegevoegd, waarmee de uitvoering van meerdere threads kan worden gepauzeerd tot een bepaald uitvoeringspunt door alle threads te bereiken (bijvoorbeeld wachten tot alle threads een bepaalde fase bereiken bij het parallel uitvoeren van dezelfde code).
  • De nieuwe implementatie van de WoW64-laag (64-bit Windows-on-Windows) is volledig ondersteund, waardoor 32-bit Windows-applicaties op 64-bit Unix-systemen kunnen worden uitgevoerd. In tegenstelling tot de oude WoW64-implementatie, waarbij 32-bit applicaties in 32-bit Unix-processen werden uitgevoerd, stelt de nieuwe WoW64 de uitvoering van 32-bit code binnen een 64-bit proces in staat. Ondersteuning voor het uitvoeren van 16-bit applicaties in de WoW64-modus is geïmplementeerd.

    In alle modules die toegang hebben tot Unix-bibliotheken, worden WoW64 systeemaanroep converters (thunk) gebruikt, waarmee 32-bit modules in PE-formaat kunnen communiceren met 64-bit Unix-bibliotheken. De mogelijkheid om oude WoW64-installaties in een nieuwe modus uit te voeren is toegevoegd door de omgevingsvariabele 'WINEARCH=wow64' in te stellen. 32-bit prefixes die worden gemaakt bij het instellen van WINEARCH=win32 zijn verouderd en worden niet ondersteund in de nieuwe WoW64 modus. De aparte wine64 bootloader is verwijderd, in plaats daarvan is er een universele bootloader die het modus bepaalt op basis van de bitgrootte van het uitvoerbare bestand.

  • Kern (Windows kerninterfaces)
    • De Reparse Point-mechanisme is geïmplementeerd, waarmee extra gegevens aan bestanden en mappen kunnen worden gekoppeld, geïdentificeerd door tags. Typen Reparse Point zoals symbolische links en mount points worden ondersteund.
    • Om de prestaties van het volgen van geheugenschrijfbewerkingen te verbeteren, is het UFFD-mechanisme (userfaultfd) ingezet, waarmee gebruikers handlers voor page faults in het gebruikersruimte kunnen creëren. In de uitgevoerde tests resulteerde het gebruik van UFFD in een verkorting van de laadtijd van levels in het spel 'Streets of Rage 4' van 6-8 seconden naar 1,5-2 seconden, wat overeenkomt met de opstarttijd op het Windows-platform.
    • De NT systeemaanroepnummers zijn geactiveerd, identiek aan de laatste versies van Windows, wat nodig is voor de ondersteuning van applicaties die hardcoded systeemaanroepnummers gebruiken.
    • Op ARM64-systemen is de mogelijkheid om 4K geheugenseiten te simuleren in omgevingen met Linux-kernels die grotere geheugenseiten (16K of 64K) gebruiken, geïmplementeerd. De simulatie maakt het mogelijk om eenvoudige applicaties uit te voeren, terwijl voor complexere programma's het wordt aanbevolen om Linux-kernels met 4-kilobyte geheugenseiten te gebruiken.
  • Grafisch subsysteem
    • Op X11-systemen (winex11) wordt standaard een render-backend voor OpenGL gebruikt die EGL toepast. De GLX-backend is verouderd, maar blijft voorlopig beschikbaar als reserve en wordt gebruikt bij afwezigheid van EGL.
    • De initiële ondersteuning voor D3DKMT-objecten is toegevoegd, die low-level toegang bieden tot grafische apparaten vanuit de gebruikersruimte. Vulkan-extensies VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 en VK_KHR_win32_keyed_mutex zijn geïmplementeerd.
    • In de WoW64-modus (64-bit Windows-on-Windows) is er ondersteuning voor geheugenmap voor OpenGL geïmplementeerd via de Vulkan API, wat de prestaties van 32-bit OpenGL-applicaties in Wine versnelt.
    • Er is emulatie van de front buffer voor OpenGL geïmplementeerd op platforms zonder ingebouwde ondersteuning.
    • In de driver voor de Vulkan grafische API is ondersteuning voor de Vulkan specificatie 1.4.335 toegevoegd.
    • In de WindowsCodecs-bibliotheek is de ondersteuning voor metadata in afbeeldingsbestanden uitgebreid, evenals de mogelijkheid om te converteren tussen gehele kleurweergaveformaten en drijvende-kommaformaten.
    • De afhankelijkheid van de OSMesa-bibliotheek (Off-screen Mesa) is verwijdert. Er is de mogelijkheid geïmplementeerd om bitmap afbeeldingen te renderen via OpenGL met behulp van hardwareversnelling.
  • Integratie met desktop
    • In de driver winewayland.drv, die Wine mogelijk maakt in omgevingen die zijn gebaseerd op het Wayland-protocol zonder XWayland en X11-componenten, is ondersteuning voor klembord, invoermethoden, niet-rechthoekige vensters en transparantie geïmplementeerd.
    • De integratie met X11 is verbeterd: er wordt gezorgd voor het verzenden van activeringsverzoeken naar de window manager en het EWMH-protocol wordt gebruikt om de status van actieve X11-vensters en Win32 te coördineren.
    • Er is ondersteuning voor een exclusieve volledige schermmodus geïmplementeerd. De ondersteuning voor een volledige schermmodus in D3D is verbeterd en de prestaties van oude spellen op basis van DDraw zijn geoptimaliseerd.
    • De prestaties van bepaalde vensterfuncties zijn verbeterd. Gedeeld geheugen wordt gebruikt voor interprocess communicatie.
  • Direct3D
    • In Direct3D 11 is ondersteuning voor hardwareversnelling van video-decoding in H.264-formaat geïmplementeerd via de Vulkan grafische API.
    • In Direct3D 11 is ondersteuning voor minmax-filtering van texturen geïmplementeerd, gebruikmakend van de OpenGL-uitbreiding GL_ARB_texture_filter_minmax of de Vulkan-uitbreiding VK_EXT_sampler_filter_minmax.
    • In Direct3D 11 zijn functies voor het laden van texturen geïmplementeerd.
    • Een groot deel van de mogelijkheden van Direct3D bij rendering via Vulkan is geïmplementeerd, zoals vertex-mixing, flat shading, aangepaste snijvlakken en verschillende resource-formaten.
    • In de ingebouwde kopie van vkd3d-shader is de ondersteuning voor modellen van shaders 1, 2 en 3 verbeterd.
    • In de methode D3DXSaveSurfaceToFileInMemory is ondersteuning voor PNG-, JPEG- en BMP-afbeeldingen geïmplementeerd.
    • In Direct3D 10 en 11 is ondersteuning voor compressie en decompressie van de formaten BC4 en BC5 geïmplementeerd, evenals de generatie van MIP-niveaus (MipMap) bij het laden van texturen.
    • De methoden ID3DXEffect::SetRawValue() en ID3DXSkinInfo::UpdateSkinnedMesh() zijn geïmplementeerd.
  • Invoerapparaten
    • De compatibiliteit met joysticks is verbeterd dankzij het gebruik van de hidraw-backend.
    • De ondersteuning voor het trillingsfeedback-effect (Force feedback) is verbeterd bij het gebruik van racesturen en joysticks.
    • De ondersteuning voor gamecontrollers is verbeterd in de API Windows.Gaming.Input en bij het gebruik van de evdev-backend.
    • In de applet voor het beheren van gamecontrollers is een tabblad toegevoegd voor het instellen van de API Windows.Gaming.Input.
    • De compatibiliteit van DirectInput met oudere spellen is verhoogd.
  • Bluetooth
    • In de Bluetooth-driver is de mogelijkheid toegevoegd om apparaten te scannen, detectie in te stellen en te koppelen.
    • Ondersteuning voor Bluetooth Low Energy-diensten is toegevoegd.
    • Toepassingen hebben de mogelijkheid gekregen om laagdrempelige RFCOMM-verbindingen met externe apparaten te maken met behulp van de Winsock API.
  • Ondersteuning voor scanners.
    • Ondersteuning voor de API TWAIN 2.0 is geïmplementeerd, waardoor toegang tot scanners vanuit 64-bits toepassingen mogelijk is.
    • Ondersteuning voor de component DAT_IMAGENATIVEXFER is geïmplementeerd om afbeeldingen van de scanner naar de toepassing te verzenden.
    • Het is mogelijk om de geselecteerde scanner en instellingen in het register op te slaan.
    • Ondersteuning voor het scannen van meerdere pagina's en automatische documentinvoer is toegevoegd.
    • De blokkering van de toepassing tijdens het aanroepen van de scaninterface is gestopt.
    • Ondersteuning voor het laden van native Windows-drivers voor scanners is toegevoegd.
  • Internationalisatie
    • De generatie van de locale-database in het locale.nls-formaat uit de Unicode CLDR (Unicode Common Locale Data Repository) versie 48 is verzekerd. Ondersteuning voor extra locales is toegevoegd: 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 en suz-Sunu-NP.
    • De Unicode-teken tabellen zijn bijgewerkt naar versie 17.0.0. De database met tijdzones is vernieuwd.
  • Netwerkfunctionaliteiten
    • In de MSHTML-engine is in de compatibiliteitsmodus ondersteuning voor de elementenattributen als volle DOM-knooppunten verzekerd. De objecten DOMParser, XDomainRequest en msCrypto zijn geïmplementeerd.
    • In JavaScript is ondersteuning voor getypeerde tabellen toegevoegd.
    • Voor ICMPv6 is de ping-opdracht geïmplementeerd.
  • DB
    • In de MSADO (ActiveX Data Objects) bibliotheek is ondersteuning voor het vastleggen van wijzigingen in de database toegevoegd. Het merendeel van de functies van het Recordset-object is geïmplementeerd.
    • In de odbc32-bibliotheek is de ondersteuning voor ANSI win32-drivers die niet zijn ontworpen voor gebruik met Unicode verbeterd. De functies SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() en QLColumnsW() zijn geïmplementeerd.
  • Ingebouwde toepassingen
    • In WineCfg is een tabblad toegevoegd voor het instellen van het standaard MIDI-apparaat.
    • In de cmd utility is het automatisch aanvullen van bestandnamen in de interactieve modus geïmplementeerd, zijn er ondersteuning voor complexe instructies toegevoegd en is de «mklink /j» command voor het maken van een Reparse Point gerealiseerd.
    • In de conhost (Console Hosting) utility is ondersteuning voor het opvragen van de geschiedenis met de toetsen F1 en F3 toegevoegd.
    • De commando's timeout, runas en subst zijn geïmplementeerd.
    • In de find utility zijn de opties «/c» toegevoegd voor het tonen van het aantal overeenkomsten en /i voor hoofdletterongevoelige overeenkomsten.
    • In de whoami utility is de mogelijkheid voor het instellen van het uitvoerformaat toegevoegd.
  • Diversen
    • In de implementatie van de interface beschrijvings taal WIDL (Wine Interface Definition Language) is ondersteuning voor het genereren van Windows Runtime (WinRT) metadata toegevoegd. Er is generering en installatie van WinMD (Windows Metadata) bestanden voor de WinRT API (Windows Runtime) verzekerd.
    • In de winedump utility is ondersteuning voor het dumpen van MUI-resources, systeemaanroepnummers, ingebouwde NE-modules en grote PDB-bestanden (> 4 GB) toegevoegd.
    • Er is een herstructurering van de implementatie van Common Control uitgevoerd, de COMCTL32 bibliotheek is verdeeld in aparte modules voor versies 5 en 6.
    • In BCrypt is ondersteuning voor de PBKDF2 sleutelvorming standaard toegevoegd.
    • Ondersteuning voor de directories UserProgramFiles, AccountPictures en Screenshots is toegevoegd.
    • De bibliotheken LLVM Compiler-RT 8.0.1 en TomCrypt 1.18.2 zijn geïntegreerd. Voor de CPU-detectie op het FreeBSD-platform is de HwLoc-bibliotheek gebruikt.
    • De componenten 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, LibXslt 1.1.43 zijn bijgewerkt naar nieuwe 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