Stabile release fan Wine 7.0

Nei in jier fan ûntwikkeling en 30 eksperimintele ferzjes, waard in stabile release fan 'e iepen ymplemintaasje fan' e Win32 API presintearre - Wine 7.0, dy't mear as 9100 wizigingen opnaam. De wichtichste prestaasjes fan 'e nije ferzje omfetsje de oersetting fan de measte Wine-modules yn PE-formaat, stipe foar tema's, útwreiding fan' e stapel foar joysticks en ynfierapparaten mei in HID-ynterface, en ymplemintaasje fan 'e WoW64-arsjitektuer foar it útfieren fan 32-bit programma's yn in 64-bit omjouwing.

Wine hat de folsleine wurking fan 5156 (in jier lyn 5049) programma's foar Windows befêstige, in oare 4312 (in jier lyn 4227) programma's wurkje perfekt mei ekstra ynstellingen en eksterne DLL's. 3813 programma's (3703 jier lyn) hawwe lytse operasjonele problemen dy't net bemuoie mei it brûken fan de haadfunksjes fan 'e applikaasjes.

Wichtige ynnovaasjes yn Wine 7.0:

  • Modules yn PE-formaat
    • Hast alle DLL's binne konvertearre om it útfierbere triemformaat PE (Portable Executable, brûkt op Windows) te brûken ynstee fan ELF. It gebrûk fan PE lost problemen op mei it stypjen fan ferskate kopiearbeskermingsskema's dy't de identiteit fan systeemmodules op skiif en yn ûnthâld ferifiearje.
    • De mooglikheid om PE-modules te ynteraksje mei Unix-biblioteken mei de standert NT-kernsysteemoprop is ymplementearre, wêrtroch jo tagong ta Unix-koade kinne ferbergje fan Windows-debuggers en threadregistraasje kontrolearje.
    • Ynboude DLL's wurde no allinich laden as d'r in oerienkommende PE-bestân op skiif is, nettsjinsteande oft it in echte bibleteek of in stub is. Dizze wiziging lit de applikaasje altyd de juste bining oan PE-bestannen sjen. Om dit gedrach út te skeakeljen, kinne jo de omjouwingsfariabele WINEBOOTSTRAPMODE brûke.
  • WoW64
    • De WoW64-arsjitektuer (64-bit Windows-on-Windows) is ymplementearre, wêrtroch jo 32-bit Windows-applikaasjes kinne útfiere yn 64-bit Unix-prosessen. Stipe wurdt ymplementearre troch de ferbining fan in laach dy't 32-bit NT-systeemoproppen oerset yn 64-bit-oproppen nei NTDLL.
    • WoW64-lagen wurde taret foar de measte Unix-biblioteken en kinne 32-bit PE-modules tagong krije ta 64-bit Unix-biblioteken. Sadree't alle modules binne konvertearre nei PE-formaat, sil it mooglik wêze om 32-bit Windows-applikaasjes út te fieren sûnder 32-bit Unix-biblioteken te ynstallearjen.
  • Tema's
    • Tema-stipe is ymplementearre. De ûntwerptema's "Ljocht", "Blauw" en "Klassysk blau" binne opnommen, dy't kinne wurde selektearre fia de WineCfg-konfigurator.
    • De mooglikheid tafoege om it uterlik fan alle ynterfacekontrôles oan te passen fia tema's. It uterlik fan eleminten wurdt automatysk bywurke nei it feroarjen fan it ûntwerptema.
    • Tema-stipe is tafoege oan alle ynboude Wine-applikaasjes. Applikaasjes binne oanpast oan skermen mei hege pikseltichtens (Hege DPI).
  • Graphics subsysteem
    • In nije Win32u-bibleteek is tafoege, dy't dielen omfettet fan 'e GDI32- en USER32-biblioteken yn ferbân mei grafyske ferwurking en finsterbehear op it kernelnivo. Yn 'e takomst sil it wurk begjinne oan it portearjen fan bestjoerderkomponinten lykas winex32.drv en winemac.drv nei Win11u.
    • De Vulkan-bestjoerder stipet de Vulkan graphics API-spesifikaasje 1.2.201.
    • Stipe foar it útfieren fan gearfette geometryske objekten fia de Direct2D API, mei de mooglikheid om te kontrolearjen oft in klik hits (hit-test).
    • De Direct2D API biedt inisjele stipe foar fisuele effekten tapast mei de ID2D1Effect-ynterface.
    • De Direct2D API hat stipe tafoege foar de ID2D1MultiThread-ynterface, dy't brûkt wurdt om eksklusive tagong te organisearjen ta boarnen yn multi-threaded applikaasjes.
    • De WindowsCodecs set fan bibleteken biedt stipe foar it dekodearjen fan ôfbyldings yn it WMP (Windows Media Photo) formaat en kodearring fan ôfbyldings yn it DDS (DirectDraw Surface) formaat. Wy stypje gjin kodearring fan ôfbyldings mear yn it ICNS-formaat (foar macOS), dat net wurdt stipe op Windows.
  • Direkte 3D
    • De nije renderingmotor is signifikant ferbettere, it oersetten fan Direct3D-oproppen nei de Vulkan graphics API. Yn 'e measte situaasjes is it nivo fan stipe foar Direct3D 10 en 11 yn' e Vulkan-basearre motor yn pariteit brocht mei de âldere OpenGL-basearre motor. Om de Vulkan-renderingmotor yn te skeakeljen, set de Direct3D-registerfariabele "renderer" yn op "vulkan".
    • In protte funksjes fan Direct3D 10 en 11 wurde ymplementearre, ynklusyf Deferred Contexts, steatsobjekten dy't wurkje yn 'e apparaatkontekst, oanhâldende offsets yn buffers, wiskjen fan bûten-oardere tekstuerwerjeften, kopiearjen fan gegevens tusken boarnen yn typeleaze formaten (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32_BTYPELESS32_32TY, ensfh.), .
    • Stipe tafoege foar konfiguraasjes mei meardere monitors, wêrtroch jo in monitor kinne selektearje om in Direct3D-applikaasje yn folslein skerm modus te werjaan.
    • De DXGI API leveret skerm gamma-korreksje, dy't kin wurde brûkt troch Direct3D 10 en 11 basearre applikaasjes om skermhelderheid te feroarjen. Ynskeakele opheljen fan firtuele framebuffers tellers (SwapChain).
    • Direct3D 12 foeget stipe ta foar ferzje 1.1 root-hântekeningen.
    • Yn 'e renderingskoade fia de Vulkan API is de effisjinsje fan query-ferwurking ferbettere as it systeem de útwreiding VK_EXT_host_query_reset stipet.
    • Tafoege de mooglikheid om útfier firtuele framebuffers (SwapChain) fia GDI as OpenGL of Vulkan kin net brûkt wurde foar werjefte, Bygelyks, doe't útfier nei in finster út ferskate prosessen, bygelyks, yn programma basearre op de CEF (Chromium Embedded Framework) ramt.
    • By it brûken fan de GLSL shader backend, wurdt de "precise" modifier garandearre foar shader ynstruksjes.
    • De DirectDraw API foeget stipe ta foar 3D-rendering yn systeemûnthâld mei softwareapparaten lykas "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 kaarten binne tafoege oan de Direct1030D grafyske kaart databank.
    • De kaai "UseGLSL" is fuortsmiten fan it register HKEY_CURRENT_USER\Software\Wine\Direct3D, ynstee dêrfan, begjinnend mei Wine 5.0, moatte jo "shader_backend" brûke.
    • Om Direct3D 12 te stypjen, hawwe jo no op syn minst ferzje 3 fan 'e vkd1.2d-bibleteek nedich.
  • D3DX
    • De ymplemintaasje fan D3DX 10 hat ferbettere stipe foar it ramt foar fisuele effekten en tafoege stipe foar it Windows Media Photo-ôfbyldingsformaat (JPEG XR)
    • Tafoege tekstuer oanmeitsjen funksjes foarsjoen yn D3DX10, lykas D3DX10CreateTextureFromMemory ().
    • De ID3DX10Sprite en ID3DX10Font software-ynterfaces binne foar in part ymplementearre.
  • Lûd en fideo
    • GStreamer-tafoegings foar DirectShow en it Media Foundation-ramt wurde kombinearre yn ien mienskiplike WineGStreamer-backend, wat de ûntwikkeling fan nije ynhâld-dekodearjende API's soe ferienfâldigje moatte.
    • Op grûn fan 'e WineGStreamer-backend wurde Windows Media-objekten ymplementearre foar syngroane en asynchrone lêzen.
    • De ymplemintaasje fan it Media Foundation-ramt is fierder ferfine, stipe foar de IMFPMediaPlayer-funksjonaliteit en sample-allokator is tafoege, en stipe foar EVR- en SAR-renderingbuffers is ferbettere.
    • De wineqtdecoder-bibleteek, dy't in dekoder foar it QuickTime-formaat leveret, is fuorthelle (alle codecs brûke no GStreamer).
  • Ynput-apparaten
    • De stapel foar ynfierapparaten dy't it HID-protokol (Human Interface Devices) stypje is signifikant ferbettere, en biedt mooglikheden lykas it parsearjen fan HID-deskriptors, it ferwurkjen fan HID-berjochten en it leverjen fan mini-HID-bestjoerders.
    • Yn 'e efterkant fan' e winebus.sys-bestjoerder is de oersetting fan apparaatbeskriuwingen yn HID-berjochten ferbettere.
    • In nije DirectInput-backend tafoege foar joysticks dy't it HID-protokol stypje. De mooglikheid om feedback-effekten te brûken yn joysticks is ymplementearre. Ferbettere joystick kontrôle paniel. Optimalisearre ynteraksje mei XInput-kompatibele apparaten. Yn WinMM is joystick-stipe ferpleatst nei DInput, ynstee fan it evdev-backend te brûken op Linux en IOHID op macOS IOHID. De âlde joysticksjauffeur winejoystick.drv is fuorthelle.
    • Nije tests binne tafoege oan de DInput-module, basearre op it gebrûk fan firtuele HID-apparaten en net nedich in fysyk apparaat.
  • Tekst en lettertypen
    • Lettertype Set objekt tafoege oan DirectWrite.
    • RichEdit ymplementearret de TextHost-ynterface korrekt.
  • Kernel (Windows Kernel Interfaces)
    • By it útfieren fan in net identifisearre útfierber bestân (lykas 'wine foo.msi') yn Wine, wurdt no start.exe neamd, dy't handlers opropt dy't ferbûn binne mei it triemtype.
    • Stipe tafoege foar syngronisaasjemeganismen NtAlertThreadByThreadId en NtWaitForAlertByThreadId, fergelykber mei futexes yn Linux.
    • Stipe tafoege foar NT-debug-objekten dy't brûkt wurde om kernelfunksjes te debuggen.
    • Stipe tafoege foar dynamyske registerkaaien om prestaasjesgegevens te bewarjen.
  • C Runtime
    • De C-runtime ymplementearret in folsleine set wiskundige funksjes, dy't benammen wurde oerdroegen fan 'e Musl-bibleteek.
    • Alle CPU-platfoarms jouwe juste stipe foar driuwende puntfunksjes.
  • Netwurkfunksjes
    • Ferbettere kompatibiliteitsmodus foar Internet Explorer 11 (IE11), dy't no standert wurdt brûkt foar it ferwurkjen fan HTML-dokuminten.
    • De mshtml-bibleteek ymplementearret ES6 JavaScript-modus (ECMAScript 2015), dy't stipe leveret foar funksjes lykas de let-ekspresje en it Map-objekt.
    • Ynstallaasje fan MSI-pakketten mei tafoegings oan 'e Gecko-motor yn' e Wine-wurkmap wurdt no dien as it nedich is, en net tidens in Wine-update.
    • Stipe tafoege foar DTLS-protokol.
    • De tsjinst NSI (Network Store Interface) is ymplementearre, it opslaan en ferstjoeren fan ynformaasje oer routing en netwurkynterfaces op 'e kompjûter nei oare tsjinsten.
    • WinSock API-hannelers lykas setsockopt en getsockopt binne ferpleatst nei NTDLL en de afd.sys-bestjoerder om oan te passen oan de Windows-arsjitektuer.
    • Wine's eigen netwurkdatabasebestannen, lykas /etc/protocols en /etc/networks, binne no ynstalleare yn 'e Wine-wurkmap, ynstee fan tagong te krijen ta ferlykbere Unix-databases.
  • Alternative platfoarms
    • Stipe tafoege foar Apple-apparatuer basearre op M1 ARM-chips (Apple Silicon).
    • Stipe foar BCrypt- en Secur32-funksjes op macOS fereasket no ynstallaasje fan 'e GnuTLS-bibleteek.
    • 32-bit útfierbere foar ARM-platfoarms binne no boud yn Thumb-2-modus, fergelykber mei Windows. In preloader wurdt brûkt om sokke triemmen te laden.
    • Foar 32-bit ARM-platfoarms is stipe foar útsûnderingen foar ûntwikkeljen ymplementearre.
    • Foar FreeBSD is it oantal stipe queries foar systeemynformaasje op leech nivo, lykas ûnthâldstatus en batterijladingsnivo, útwreide.
  • Ynboude applikaasjes en ûntwikkeling ark
    • It hulpprogramma reg.exe hat stipe tafoege foar 32- en 64-bit registerwerjeften. Stipe tafoege foar it kopiearjen fan registerkaaien.
    • It WineDump-hulpprogramma hat stipe tafoege foar it dumpen fan Windows-metadata en it werjaan fan detaillearre ynformaasje oer CodeView-yngongen.
    • De Wine Debugger (winedbg) biedt de mooglikheid om 32-bit prosessen te debuggen fan in 64-bit debugger.
    • De mooglikheid om bibleteken te laden yn PE-bestannen is tafoege oan de IDL-kompiler (widl), stipe foar WinRT-spesifike attributen en konstruksjes is levere, en in platfoarm-spesifike biblioteeksykjen is ymplementearre.
  • Assembly systeem
    • Yn arsjitektuer-spesifike mappen wurde bibleteken no bewarre mei nammen dy't de arsjitektuer en it type fan útfierber reflektearje, bygelyks 'i386-finsters' foar it PE-formaat en 'x86_64-unix' foar unix-biblioteken, wêrtroch stipe foar ferskate arsjitektueren yn in single Wine ynstallaasje en soargje cross-kompilaasje fan Winelib.
    • Om in opsje yn te stellen yn 'e kopteksten fan PE-bestannen dy't de oergong nei it brûken fan native DLL's kontrolearret, is de flagge '--prefer-native option' tafoege oan winebuild (DLL_WINE_PREATTACH-ferwurking yn DllMain is stoppe).
    • Stipe tafoege foar ferzje 4 fan it Dwarf-debuggegevensformaat, dat no standert wurdt brûkt by it bouwen fan Wine-biblioteken.
    • Bouwopsje '—enable-build-id' tafoege om unike build-identifiers te bewarjen yn útfierbere bestannen.
    • Stipe tafoege foar it brûken fan de Clang-kompilator yn MSVC-kompatibiliteitsmodus.
  • Разное
    • De nammen fan typyske mappen yn 'e brûkersshell (Windows Shell) wurde jûn oan it skema dat wurdt brûkt begjinnend mei Windows Vista, d.w.s. Ynstee fan 'Myn dokuminten' wurdt no in map 'Dokuminten' oanmakke, en de measte gegevens wurde bewarre yn 'e map 'AppData'.
    • Stipe foar de OpenCL 1.2-spesifikaasje is tafoege oan de OpenCL-bibleteeklaach.
    • De WinSpool-bestjoerder hat stipe tafoege foar ferskate sidegrutte by it printsjen.
    • Inisjele stipe tafoege foar MSDASQL, de Microsoft OLE DB-provider foar ODBC-bestjoerders.
    • De Wine Mono-motor mei de ymplemintaasje fan it .NET-platfoarm is bywurke om 7.0.0 frij te litten.
    • Unicode-gegevens binne bywurke nei de Unicode 14-spesifikaasje.
    • De boarnebeam omfettet de biblioteken Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt en Zlib, dy't kompilearre binne yn PE-formaat en gjin ferzje yn Unix-formaat nedich binne. Tagelyk kinne dizze bibleteken ek wurde ymportearre út it systeem om eksterne gearkomsten te brûken ynstee fan ynboude PE-opsjes.

Boarne: opennet.ru

Add a comment