Stabiilne versioon Wine 7.0

Pärast aastast arendust ja 30 katseversiooni on välja antud avatud Win32 API rakenduse stabiilne versioon — Wine 7.0, mis hõlmab enam kui 9100 muudatust. Uue versiooni peamiste saavutuste hulka kuulub enamik Wine'i mooduleid PE-formaadis, teema toetuse lisamine, joystikute ja HID-liidesega siseseadmete toe suurendamine ning WoW64 arhitektuuri rakendamine 32-bitiste programmide käitamiseks 64-bitises keskkonnas.

Wines on kinnitatud 5156 Windowsi programmi täielik toimimine (aasta tagasi 5049), veel 4312 programmi (aasta tagasi 4227) töötab suurepäraselt täiendavate seadistuste ja välistest DLL-idest. 3813 programmi (aasta tagasi 3703) puhul on täheldatud väikeseid toimimisprobleeme, mis ei takista rakenduste põhifunktsioonide kasutamist.

Wine 7.0 peamised uuendused:

  • Moodulid PE-formaadis
    • Peaaegu kõik DLL-teekid on viidud üle PE (Portable Executable, kasutatav Windowsis) formaadi rakendamisele ELF-i asemel. PE kasutamine lahendab probleemid erinevate kopeerimise kaitsemehhanismide toetamisega, mis kontrollivad süsteemimoodulite identiteeti ketas ja mälus.
    • On rakendatud PE-moodulite koostöö Unix-teekidega, kasutades NT- süsteemi kutsumise mõistet, mis võimaldab peita Unix-koodi kutsumise Windowsi silumistööriistadelt ja jälgida õiget registreerimist.
    • Sisseehitatud DLL-e laaditakse nüüd ainult siis, kui diskil on vastav PE-formaadis fail, sõltumata sellest, kas see on tõeline teek või koht. Antud muudatus võimaldab rakendusel alati näha PE-failide õiget seotust. Selle käitumise keelamiseks saab kasutada keskkonnamuutujat WINEBOOTSTRAPMODE.
  • WoW64
    • On rakendatud WoW64 arhitektuur (64-bitine Windows-on-Windows), mis võimaldab 32-bitiseid Windowsi rakendusi käivitada 64-bitistes Unix-protsessides. Toetust on rakendatud vahekihti ühendades, mis tõlgib 32-bitiseid NT süsteemi kutsumisi 64-bitisteks pöördumisteks NTDLL-i.
    • WoW64 vahekiht on valmis enamikule Unix-teekidele ja võimaldab 32-bitistel moodulitel PE-formaadis pöörduda 64-bitiste Unix-teekide poole. Pärast kõigi moodulite viimist PE-formaadile on võimalik käivitada 32-bitiseid Windowsi rakendusi ilma 32-bitiste Unix-teekide installimiseta.
  • Kohandeteemad
    • Toetatakse kohandeteemasid. Kompordis sisaldavad teemad "Kerge", "Sinine" ja "Klassikaline Sinine", mida saab valida WineCfg konfigureerija kaudu.
    • Lisatud on võimalus seadistada kõigi kasutajaliidese juhtnuppude välimust kohandeteemade kaudu. Pärast teema vahetamist värskendatakse elementide välimust automaatselt.
    • Kõikidesse sisseehitatud Wine'i rakendustesse on lisatud kohandeteemade toetamine. Rakendused on kohandatud kõrge pikslitihedusega ekraanide (High DPI) jaoks.
  • Graafikasüsteem
    • Lisatud on uus Win32u teek, kuhu on viidud GDI32 ja USER32 teekide osad, mis on seotud graafika töötlemise ja akende haldamisega tasemel kernel. Edasi hakatakse töötama Win32u komponentide, nagu winex11.drv ja winemac.drv, üleviimise kallal.
    • Vulkan draiveris on rakendatud graafikute API Vulkan 1.2.201 spetsifikatsiooni toetamist.
    • API Direct2D kaudu on antud tugi joonistamiseks mustritest geomeetriliste objektide väljundiks, sealhulgas klikkimise tabamuse kontrollimiseks (hit-test).
    • API Direct2D-s on algne toetus visuaalsete efektide rakendamiseks ID2D1Effect liidese abil.
    • API Direct2D-s on lisatud ID2D1MultiThread liidese toetus, mis on ette nähtud ressursside eksklusiivse juurdepääsu korraldamiseks mitme lõime rakendustes.
    • WindowsCodecs teekides on lisatud tugi WMP (Windows Media Photo) formaadis piltide dekodeerimiseks ning DDS (DirectDraw Surface) formatuuri piltide kodeerimiseks. ICNS formaadi (macOS-i jaoks) kodeerimise tugi on lõpetatud, kuna Windows seda ei toeta.
  • Direct3D
    • Uus renderdamismootor, mis tõlgendab Direct3D kõnesid Vulkan graafikute API-s, on oluliselt parenenud. Enamikus olukordades on Direct3D 10 ja 11 tase Vulkan põhinev mootori tasemel võrdsustatud vana OpenGL põhise mootori tasemega. Vulkan renderdamismootori aktiveerimiseks tuleb seada registris Direct3D muutujaks "renderer" väärtus "vulkan".
    • Rakendatud on paljusid Direct3D 10 ja 11 võimalusi, sealhulgas viivitatud kontekste (Deferred Contexts), mis toimivad seadme kontekstis, staatikaobjektide pidevad nihked, mittesorteeritud tekstuuride puhastamine, andmete kopeerimine ressursside vahel mittetüüpilistes formaatides (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) jne.
    • Lisatud tugi mitmeekraaniliste konfiguratsioonide jaoks, mis võimaldab valida ekraani, kuhu Direct3D rakendus töölauarežiimis kuvatakse.
    • DXGI API-s on rakendatud ekraani gammakorrigeerimise võimalus, mida Direct3D 10 ja 11 põhinevad rakendused saavad kasutada ekraani heleduse muutmiseks. On tagatud virtuaalsete vahetusraamide (SwapChain) loendite väljatoomine.
    • Direct3D 12-s on lisatud versiooni 1.1 juurekirjelduste tugi.
    • Vulkan API-s on renderdamise koodis parandatud päringute töötlemise efektiivsust, kui süsteemis on tugi VK_EXT_host_query_reset laiendusele.
    • Lisatud võimalus edastada virtuaalseid vahetusraame (SwapChain) GDI kaudu, kui OpenGL või Vulkan ei saa kuvatud olla, näiteks kui kuvatakse erinevate protsesside aknadesse, näiteks CEF (Chromium Embedded Framework) baasil olevates programmides.
    • GLSL shaderite tagasilöögipinna kasutamisel on tagatud modifikaatori „precise” rakendamine shaderite juhistes.
    • DirectDraw API-s on lisatud 3D renderdamise tugi süsteemi mällu, kasutades tarkvaraseadmeid nagu „RGB”, „MMX” ja „Ramp”.
    • Direct3D graafikakaartide andmebaasi on lisatud AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 ja NVIDIA GT 1030 kaardid.
    • HKEY_CURRENT_USER\Software\Wine\Direct3D registrist on eemaldatud võti „UseGLSL”, mille asemel tuleb alates Wine 5.0-st kasutada „shader_backend”.
    • Direct3D 12 toetamiseks on nüüd vajalik vähemalt versiooni 1.2 vkd3d raamistik.
  • D3DX
    • D3DX 10 rakenduses on parandatud visuaalsete efektide raamistiku tuge ja lisatud toe Windows Media Photo (JPEG XR) pildiformaat.
    • D3DX10 funktsioonide hulka on lisatud tekstuuride loomise funktsioonid, näiteks D3DX10CreateTextureFromMemory().
    • Osaliselt on rakendatud ID3DX10Sprite ja ID3DX10Font liideseid.
  • Heli ja video
    • WineGStreamer üldisesse tagasihakkesse on ühendatud GStreamer-i laiendused DirectShow ja Media Foundation raamistiku jaoks, mis peaks lihtsustama uute API-de välja töötamist sisu dekodeerimiseks.
    • WineGStreamer tagasihakkes on rakendatud Windows Media objekte sünkroonselt ja asünkroonselt lugemiseks.
    • Media Foundation raamistiku teostuse täiendamine on jätkunud, lisades IMFPMediaPlayer funktsionaalsuse toe, proovide jaoturi (sample allocator) toe, samuti EVR ja SAR joonistusbuffrite tuge.
    • Eemaldatud on teek wineqtdecoder, mis pakkus dekoodrit QuickTime formaadi jaoks (kõigi koodekite jaoks kasutatakse nüüd GStreamerit).
  • Input devices
    • Sisuliselt on parendatud sisse- ja väljundseadmete protokolli HID (Human Interface Devices) jaoks mõeldud steki tõhusust, mis hõlmab funktsioone nagu HID-deskriptorite parsimine, HID-sõnumite töötlemine ja HID-mini-draiverite pakkumine.
    • Draiveri winebus.sys tagakülgedes on parendatud seadmete kirjelduste tõlget HID-sõnumiteks.
    • Uus DirectInput tagakülg, mis toetab HID-protokolliga mängupulte. Teostatud on tagasiside efektide kasutamise võimalus mängupultides. Parendatud on juhtpaneel mängupulte. Optimeeritud on nõrkade seadmestike ühilduvust XInputiga. WinMM-is on mängupultide tugi viidud DInputi, selle asemel et kasutada Linuxis evdev tagakülge ja IOHID macOS-is. Eemaldatud on vana mängupultide draiver winejoystick.drv.
    • DInput moodulisse on lisatud uusi katsetusi, mis põhinevad virtuaalsetel HID-seadmetel ja ei vaja füüsiliste seadmete olemasolu.
  • Tekst ja fondid
    • DirectWrite'is on lisatud objekt Font Set.
    • RichEditis on korrektset teostatud liidest TextHost.
  • Kernel (Windowsi kerneli liidesed)
    • Unikaalse täitmisfaili (nt 'wine foo.msi') käivitamisel jääb nüüd alles start.exe, mis käivitab kestusi, seotud failitüübiga.
    • Sünkroonimise mehhanismide NtAlertThreadByThreadId ja NtWaitForAlertByThreadId tugi, mis sarnaneb Linuxi futexidele, on lisatud.
    • Lisatud on NT-debüütobjektide tugi, mida kasutatakse kernelifunktsioonide silumiseks.
    • Dünaamiliste registriklahvide tugi on lisatud, et salvestada jõudluse andmeid.
  • C Runtime
    • C runtime'is on teostatud täielik matemaatikafunktsioonide komplekt, mis on peamiselt üle kantud Musl raamatukogust.
    • Kõikide CPU platvormide jaoks on tagatud õige tugi ujuvkoma funktsioonide arvutamiseks.
  • Võrguteenused
    • Internet Explorer 11 (IE11) ühilduvusrežiimi on parendatud, nüüd kasutatakse seda vaikimisi HTML-dokumendi töötlemiseks.
    • Raamatukogus mshtml on teostatud JavaScripti režiim ES6 (ECMAScript 2015), kus on tagatud selliste funktsioonide tugi nagu let lause ja Map objekt.
    • Gecko mootoriga lisandustega MSI-pakettide installimine Wine'i töötavasse katalooge toimub nüüd vaid vajadusel, mitte Wine'i värskendamise ajal.
    • DTLS protokolli tugi on lisatud.
    • On teostatud NSI (Network Store Interface) teenus, mis salvestab ja edastab teistele teenustele teavet marsruutimise ja arvuti võrguliidestega.
    • WinSock API töötlejad, nagu setsockopt ja getsockopt, on viidud NTDLL teeki ja afd.sys draiverisse, et vastata Windowsi arhitektuurile.
    • Wine'i töökatalooge installitakse nüüd oma failide võrgudatabasid, nagu /etc/protocols ja /etc/networks, asemel, et pöörduda sarnaste Unix DB-de poole.
  • Alternatiivsed platvormid
    • Apple'i ARM-põhise M1 (Apple Silicon) riistvara tugi on lisatud.
    • BCrypt ja Secur32 funktsioonide toetamiseks macOS platvormil on nüüd vajalik GnuTLS teegi paigaldamine.
    • 32-bitised täitmisfailid ARM-platvormidele koostatakse nüüd Thumb-2 režiimis, sarnaselt Windowsile. Selliste failide laadimiseks kasutatakse eelprotsessorit.
    • 32-bitistes ARM-platvormides on ellu viidud erindite pöördumise (unwinding) tugi.
    • FreeBSD-s on laiendatud toetatavate madala taseme süsteemi informatsiooni päringute arvu, nagu mäluseisundi ja akutoite taseme andmed.
  • Kaasatud rakendused ja arendustööriistad
    • Reg.exe utiliidile on lisatud 32- ja 64-bitise registri kuvamise tugi. On lisatud registri võtmete kopeerimise tugi.
    • WineDump utiliidile on lisatud Windowsi metaandmete väljatrüki tugi ja üksikasjaliku teabe kuvamise tugi CodeView'i kirje kohta.
    • Wine Debuggeri (winedbg) tõrkeotsingu utiliidis on ellu viidud 32-bitiste protsesside tõrkeotsing 64-bitise tõrkeotsingu utiliidist.
    • IDL (widl) kompilaatorile on lisatud tugi PE-failidesse sisseehitatud teekide laadimiseks, samuti on tagatud WinRT spetsiifiliste omaduste ja konstruktsioonide tugi ning teekide otsing platvormile.
  • Kogumissüsteem
    • Riistvaraarhitektuurile spetsiifilistes kataloogides salvestatakse teegid nimedega, mis peegeldavad arhitektuuri ja täitmisfailide tüüpi, näiteks 'i386-windows' PE formaadi jaoks ja 'x86_64-unix' unix-teekide jaoks, mis võimaldab toetada erinevaid arhitektuure ühes Wine'i installatsioonis ja tagab Winelib-i ristsuure.
    • PE-failide pealkirjades opsioonide seadmiseks, mis juhivad üleminekut natiivsete DLL-teekide kasutamisele, on winebuild'i lisatud lipp ‘—prefer-native option’ (DLL_WINE_PREATTACH töötlemine DllMainis on lõpetatud).
    • On lisatud toe 4. versioonile Dwarf-i silumisandmete formaadist, mis on nüüd vaikimisi kehtestatud Wine'i teekide kogumisel.
    • Kogutud on versioonivalik „—enable-build-id” kompilatsioonifailides ainulaadsete identifikaatorite säilitamiseks.
    • Lisatud tugi Clangi kompilaatori kasutamiseks MSVC ühilduvusrežiimis.
  • Muud
    • Kasutajaliidese (Windows Shell) tüüpkataloogide nimed viidud kooskõlla Windows Vista ja uuemate versioonidega, st 'My Documents' asemel luuakse nüüd kataloog 'Documents' ning enamik andmeid salvestatakse katalooge 'AppData'.
    • OpenCL raamatukogude vahetükki on lisatud tugi OpenCL 1.2 spetsiifikale.
    • WinSpooli draiverisse on lisatud tugi erinevate lehe suuruste variantide jaoks trükkimise ajal.
    • Algne tugi MSDASQL-le, Microsofti OLE DB andarile ODBC draiverite jaoks, on lisatud.
    • Wine Mono mootor .NET-i rakendusega on värskendatud versioonile 7.0.0.
    • Unicode andmed on värskendatud Unicode 14 spetsiifikale.
    • Allika puusse on sisseehitatud raamatukogud Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ja Zlib, mis kompileeritakse PE formaadis ja ei nõua Unix-formaadiga variandi olemasolu. Samal ajal võivad neid raamatukogusid samuti süsteemist importida, et kasutada väliseid kogusid sisseehitatud PE variantide asemel.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster