Stabiele weergawe van Wine 7.0

Na 'n jaar van ontwikkeling en 30 eksperimentele weergawes, is 'n stabiele vrystelling van die oop implementering van die Win32 API aangebied - Wine 7.0, wat meer as 9100 64 veranderinge ingesluit het. Die belangrikste prestasies van die nuwe weergawe sluit in die vertaling van die meeste Wyn-modules in PE-formaat, ondersteuning vir temas, uitbreiding van die stapel vir joysticks en invoertoestelle met 'n HID-koppelvlak, en implementering van die WoW32-argitektuur om 64-bis-programme in 'n XNUMX-bis omgewing.

Wine het die volle werking van 5156 ('n jaar gelede 5049) programme vir Windows bevestig, nog 4312 ('n jaar gelede 4227) programme werk perfek met bykomende instellings en eksterne DLL's. 3813 3703 programme (XNUMX XNUMX jaar gelede) het geringe operasionele probleme wat nie inmeng met die gebruik van die hooffunksies van die toepassings nie.

Sleutelinnovasies in Wine 7.0:

  • Modules in PE-formaat
    • Byna alle DLL's is omgeskakel om die PE (Portable Executable, gebruik op Windows) uitvoerbare lêerformaat in plaas van ELF te gebruik. Die gebruik van PE los probleme op met die ondersteuning van verskeie kopiebeskermingskemas wat die identiteit van stelselmodules op skyf en in geheue verifieer.
    • Die vermoë om interaksie met PE-modules met Unix-biblioteke te gebruik deur die standaard NT-kernstelseloproep te gebruik, is geïmplementeer, wat jou toelaat om toegang tot Unix-kode van Windows-ontfouters te verberg en draadregistrasie te monitor.
    • Ingeboude DLL's word nou net gelaai as daar 'n ooreenstemmende PE-lêer op skyf is, ongeag of dit 'n regte biblioteek of 'n stomp is. Hierdie verandering laat die toepassing toe om altyd die korrekte binding aan PE-lêers te sien. Om hierdie gedrag te deaktiveer, kan jy die WINEBOOTSTRAPMODE omgewingsveranderlike gebruik.
  • WoW64
    • Die WoW64-argitektuur (64-bis Windows-op-Windows) is geïmplementeer, sodat jy 32-bis Windows-toepassings in 64-bis Unix-prosesse kan laat loop. Ondersteuning word geïmplementeer deur die verbinding van 'n laag wat 32-bis NT-stelseloproepe in 64-bis-oproepe na NTDLL vertaal.
    • WoW64-lae word voorberei vir die meeste Unix-biblioteke en laat 32-bis PE-modules toegang tot 64-bis Unix-biblioteke toe. Sodra alle modules na PE-formaat omgeskakel is, sal dit moontlik wees om 32-bis Windows-toepassings te laat loop sonder om 32-bis Unix-biblioteke te installeer.
  • Temas
    • Tema-ondersteuning is geïmplementeer. Die ontwerptemas "Lig", "Blou" en "Klassiek Blou" is ingesluit, wat deur die WineCfg-konfigureerder gekies kan word.
    • Bygevoeg die vermoë om die voorkoms van alle koppelvlakkontroles deur temas aan te pas. Die voorkoms van elemente word outomaties opgedateer nadat die ontwerptema verander is.
    • Tema-ondersteuning is by alle ingeboude wyntoepassings gevoeg. Toepassings is aangepas vir skerms met hoë pixeldigtheid (High DPI).
  • Grafiese substelsel
    • 'n Nuwe Win32u-biblioteek is bygevoeg, wat dele van die GDI32- en USER32-biblioteke insluit wat verband hou met grafiese verwerking en vensterbestuur op kernvlak. In die toekoms sal daar begin word om bestuurderkomponente soos winex32.drv en winemac.drv na Win11u oor te dra.
    • Die Vulkan-bestuurder ondersteun die Vulkan-grafiese API-spesifikasie 1.2.201.
    • Ondersteuning verskaf vir die uitvoer van uitgebroeide geometriese voorwerpe via die Direct2D API, met die vermoë om te kyk of 'n klik tref (treffertoets).
    • Die Direct2D API bied aanvanklike ondersteuning vir visuele effekte wat met die ID2D1Effect-koppelvlak toegepas word.
    • Die Direct2D API het ondersteuning bygevoeg vir die ID2D1MultiThread-koppelvlak, wat gebruik word om eksklusiewe toegang tot hulpbronne in multi-threaded toepassings te organiseer.
    • Die WindowsCodecs-stel biblioteke bied ondersteuning vir die dekodering van beelde in die WMP (Windows Media Photo)-formaat en enkodering van beelde in die DDS (DirectDraw Surface)-formaat. Ons ondersteun nie meer enkodering van beelde in die ICNS-formaat (vir macOS), wat nie op Windows ondersteun word nie.
  • Direct3D
    • Die nuwe weergawe-enjin is aansienlik verbeter en vertaal Direct3D-oproepe na die Vulkan-grafiese API. In die meeste situasies is die vlak van ondersteuning vir Direct3D 10 en 11 in die Vulkan-gebaseerde enjin in gelykheid gebring met die ouer OpenGL-gebaseerde enjin. Om die Vulkan-weergawe-enjin te aktiveer, stel die Direct3D-registerveranderlike "renderer" op "vulkan".
    • Baie kenmerke van Direct3D 10 en 11 word geïmplementeer, insluitend uitgestelde kontekste, staatsvoorwerpe wat in die toestelkonteks werk, aanhoudende afwykings in buffers, uitvee van buite-orde tekstuuraansigte, kopiëring van data tussen hulpbronne in tiklose formate (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32TYPELESS32_32BTY), ens. .
    • Bygevoeg ondersteuning vir multi-monitor konfigurasies, wat jou toelaat om 'n monitor te kies om 'n Direct3D-toepassing in volskermmodus te vertoon.
    • Die DXGI API bied skerm gamma regstelling, wat gebruik kan word deur Direct3D 10 en 11 gebaseerde toepassings om skerm helderheid te verander. Geaktiveer herwinning van virtuele raambuffers tellers (SwapChain).
    • Direct3D 12 voeg ondersteuning by vir weergawe 1.1-wortelhandtekeninge.
    • In die weergawekode via die Vulkan API is die doeltreffendheid van navraagverwerking verbeter wanneer die stelsel die VK_EXT_host_query_reset-uitbreiding ondersteun.
    • Bygevoeg die vermoë om virtuele raambuffers (SwapChain) via GDI uit te voer as OpenGL of Vulkan nie vir vertoon gebruik kan word nie, byvoorbeeld wanneer dit na 'n venster van verskillende prosesse uitgevoer word, byvoorbeeld in programme gebaseer op die CEF (Chromium Embedded Framework) raamwerk.
    • Wanneer die GLSL-skadu-agterkant gebruik word, word die "presiese" wysiger verseker vir skadu-instruksies.
    • Die DirectDraw API voeg ondersteuning by vir 3D-weergawe in stelselgeheue met behulp van sagteware-toestelle soos "RGB", "MMX" en "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 en NVIDIA GT 630-kaarte is by die Direct1030D-grafiese kaartdatabasis gevoeg.
    • Die "UseGLSL"-sleutel is verwyder uit die HKEY_CURRENT_USER\Software\Wine\Direct3D-register, in plaas daarvan, vanaf Wine 5.0, moet jy "shader_backend" gebruik.
    • Om Direct3D 12 te ondersteun, benodig jy nou ten minste weergawe 3 van die vkd1.2d-biblioteek.
  • D3DX
    • Die D3DX 10-implementering het verbeterde ondersteuning vir die visuele effekte-raamwerk en bygevoeg ondersteuning vir die Windows Media Photo-beeldformaat (JPEG XR)
    • Bygevoeg tekstuurskeppingsfunksies wat in D3DX10 verskaf word, soos D3DX10CreateTextureFromMemory().
    • Die ID3DX10Sprite- en ID3DX10Font-sagteware-koppelvlakke is gedeeltelik geïmplementeer.
  • Klank en video
    • GStreamer-byvoegings vir DirectShow en die Media Foundation-raamwerk word gekombineer in een algemene WineGStreamer-agtergrond, wat die ontwikkeling van nuwe inhouddekoderings-API's behoort te vereenvoudig.
    • Gebaseer op die WineGStreamer-agtergrond, word Windows Media-voorwerpe geïmplementeer vir sinchroniese en asinchroniese lees.
    • Die implementering van die Media Foundation-raamwerk is verder verfyn, ondersteuning vir die IMFPMediaPlayer-funksionaliteit en monstertoewyser is bygevoeg, en ondersteuning vir EVR- en SAR-weergawebuffers is verbeter.
    • Die wineqtdecoder-biblioteek, wat 'n dekodeerder vir die QuickTime-formaat verskaf, is verwyder (alle codecs gebruik nou GStreamer).
  • Toevoertoestelle
    • Die stapel vir invoertoestelle wat die HID (Human Interface Devices)-protokol ondersteun, is aansienlik verbeter, wat vermoëns bied soos die ontleding van HID-beskrywers, die verwerking van HID-boodskappe en die verskaffing van mini-HID-drywers.
    • In die agterkant van die winebus.sys-bestuurder is die vertaling van toestelbeskrywings in HID-boodskappe verbeter.
    • 'n Nuwe DirectInput-agterkant bygevoeg vir joysticks wat die HID-protokol ondersteun. Die vermoë om terugvoer-effekte in joysticks te gebruik, is geïmplementeer. Verbeterde joystick-kontrolepaneel. Geoptimaliseerde interaksie met XInput-versoenbare toestelle. In WinMM is joystick-ondersteuning na DInput geskuif, in plaas daarvan om die evdev-agterkant op Linux en IOHID op macOS IOHID te gebruik. Die ou joystick drywer winejoystick.drv is verwyder.
    • Nuwe toetse is by die DInput-module gevoeg, gebaseer op die gebruik van virtuele HID-toestelle en wat nie 'n fisiese toestel benodig nie.
  • Teks en lettertipes
    • Bygevoeg Font Stel voorwerp by DirectWrite.
    • RichEdit implementeer die TextHost-koppelvlak korrek.
  • Kern (Windows Kernel Interfaces)
    • Wanneer 'n ongeïdentifiseerde uitvoerbare lêer (soos 'wine foo.msi') in Wine uitgevoer word, word start.exe nou genoem, wat hanteerders wat met die lêertipe geassosieer word, oproep.
    • Bygevoeg ondersteuning vir sinchronisasie meganismes NtAlertThreadByThreadId en NtWaitForAlertByThreadId, soortgelyk aan futexes in Linux.
    • Bygevoeg ondersteuning vir NT ontfout voorwerpe wat gebruik word om kern funksies te ontfout.
    • Bygevoeg ondersteuning vir dinamiese registersleutels om prestasiedata te stoor.
  • C Looptyd
    • Die C-looptyd implementeer 'n volledige stel wiskundige funksies, wat hoofsaaklik van die Musl-biblioteek oorgedra word.
    • Alle SVE-platforms bied korrekte ondersteuning vir swaaipuntfunksies.
  • Netwerk funksies
    • Verbeterde versoenbaarheidsmodus vir Internet Explorer 11 (IE11), wat nou by verstek gebruik word vir die verwerking van HTML-dokumente.
    • Die mshtml-biblioteek implementeer ES6 JavaScript-modus (ECMAScript 2015), wat ondersteuning bied vir kenmerke soos die let-uitdrukking en die Map-voorwerp.
    • Installasie van MSI-pakkette met toevoegings tot die Gecko-enjin in die Wine-werkgids word nou gedoen wanneer nodig, en nie tydens 'n Wine-opdatering nie.
    • Bygevoeg ondersteuning vir DTLS protokol.
    • Die NSI (Network Store Interface) diens is geïmplementeer, wat inligting oor roetering en netwerkkoppelvlakke op die rekenaar stoor en oordra na ander dienste.
    • WinSock API-hanteerders soos setsockopt en getsockopt is na NTDLL en die afd.sys-bestuurder geskuif om aan die Windows-argitektuur te voldoen.
    • Wine se eie netwerkdatabasislêers, soos /etc/protocols en /etc/networks, word nou in die Wine-werkgids geïnstalleer, in plaas daarvan om toegang tot soortgelyke Unix-databasisse te kry.
  • Alternatiewe platforms
    • Bygevoeg ondersteuning vir Apple-toerusting gebaseer op M1 ARM-skyfies (Apple Silicon).
    • Ondersteuning vir BCrypt- en Secur32-kenmerke op macOS vereis nou installasie van die GnuTLS-biblioteek.
    • 32-bis uitvoerbare programme vir ARM-platforms word nou in Thumb-2-modus gebou, soortgelyk aan Windows. 'n Voorlaaier word gebruik om sulke lêers te laai.
    • Vir 32-bis ARM-platforms is ondersteuning vir ontwikkeluitsonderings geïmplementeer.
    • Vir FreeBSD is die aantal ondersteunde navrae vir laevlakstelselinligting, soos geheuestatus en batterylaaivlak, uitgebrei.
  • Ingeboude toepassings en ontwikkelingsinstrumente
    • Die reg.exe-hulpmiddel het ondersteuning bygevoeg vir 32- en 64-bis registeraansigte. Bygevoeg ondersteuning vir die kopiëring van registersleutels.
    • Die WineDump-nutsding het ondersteuning bygevoeg vir die storting van Windows-metadata en die vertoon van gedetailleerde inligting oor CodeView-inskrywings.
    • Die Wine Debugger (winedbg) bied die vermoë om 32-bis-prosesse vanaf 'n 64-bis-ontfouter te ontfout.
    • Die vermoë om biblioteke wat in PE-lêers ingebou is, te laai, is by die IDL-samesteller (widl) gevoeg, ondersteuning vir WinRT-spesifieke eienskappe en konstrukte is verskaf, en 'n platformspesifieke biblioteeksoektog is geïmplementeer.
  • Vergadering stelsel
    • In argitektuurspesifieke dopgehou word biblioteke nou gestoor met name wat die argitektuur en uitvoerbare tipe weerspieël, soos 'i386-vensters' vir die PE-formaat en 'x86_64-unix' vir unix-biblioteke, wat ondersteuning vir verskillende argitekture in 'n enkele wyn moontlik maak installasie en verskaf kruissamestelling van Winelib.
    • Om 'n opsie in die koptekste van PE-lêers te stel wat die oorgang na die gebruik van inheemse DLL's beheer, is die '--prefer-native option'-vlag by wynbou gevoeg (DLL_WINE_PREATTACH-verwerking in DllMain is gestop).
    • Ondersteuning bygevoeg vir weergawe 4 van die Dwarf-ontfoutdataformaat, wat nou by verstek gebruik word wanneer wynbiblioteke gebou word.
    • Bygevoeg bou-opsie '—enable-build-id' om unieke bou-identifiseerders in uitvoerbare lêers te stoor.
    • Bygevoeg ondersteuning vir die gebruik van die Clang samesteller in MSVC verenigbaarheid af.
  • Miscellanea
    • Die name van tipiese gidse in die gebruikersdop (Windows Shell) word gegee aan die skema wat met Windows Vista begin word, d.w.s. In plaas van 'My Dokumente', word 'n 'Dokumente'-gids nou geskep, en die meeste van die data word in die 'AppData'-gids gestoor.
    • Ondersteuning vir die OpenCL 1.2-spesifikasie is by die OpenCL-biblioteeklaag gevoeg.
    • Die WinSpool-bestuurder het ondersteuning bygevoeg vir verskillende bladsygroottes tydens druk.
    • Bygevoeg aanvanklike ondersteuning vir MSDASQL, die Microsoft OLE DB-verskaffer vir ODBC-bestuurders.
    • Die Wine Mono-enjin met .NET-platformimplementering is opgedateer om 7.0.0 vry te stel.
    • Unicode-data is opgedateer na die Unicode 14-spesifikasie.
    • Die bronboom sluit die Faudio-, GSM-, LCMS2-, LibJPEG-, LibJXR-, LibMPG123-, LibPng-, LibTiff-, LibXml2-, LibXslt- en Zlib-biblioteke in, wat in PE-formaat saamgestel is en nie 'n weergawe in Unix-formaat benodig nie. Terselfdertyd kan hierdie biblioteke ook vanaf die stelsel ingevoer word om eksterne samestellings te gebruik in plaas van ingeboude PE-opsies.

Bron: opennet.ru

Voeg 'n opmerking