Wine 7.0 stabiilne väljalase

Pärast aasta pikkust arendustööd ja 30 eksperimentaalset versiooni esitleti Win32 API avatud juurutuse stabiilset versiooni - Wine 7.0, mis sisaldas enam kui 9100 muudatust. Uue versiooni peamised saavutused hõlmavad enamiku Wine'i moodulite tõlkimist PE-vormingusse, teemade toetamist, juhtkangide ja HID-liidesega sisendseadmete virna laiendamist ning WoW64 arhitektuuri rakendamist 32-bitiste programmide käitamiseks. 64-bitine keskkond.

Wine on kinnitanud Windowsi jaoks 5156 (aasta tagasi 5049) programmi täielikku toimimist, veel 4312 (aasta tagasi 4227) programmi töötavad suurepäraselt koos lisaseadete ja väliste DLL-idega. 3813 programmil (3703 aastat tagasi) esineb väiksemaid tööprobleeme, mis ei sega rakenduste põhifunktsioonide kasutamist.

Peamised uuendused versioonis Wine 7.0:

  • Moodulid PE-vormingus
    • Peaaegu kõik DLL-id on teisendatud ELF-i asemel PE (Portable Executable, mida kasutatakse Windowsis) käivitatava failivormingu kasutamiseks. PE kasutamine lahendab probleeme erinevate kopeerimiskaitseskeemide toetamisega, mis kontrollivad kettal ja mälus olevate süsteemimoodulite identiteeti.
    • Rakendatud on võimalus suhelda PE-moodulitega Unixi teekidega standardse NT kerneli süsteemikutsega, mis võimaldab peita juurdepääsu Unixi koodile Windowsi silurite eest ja jälgida lõime registreerimist.
    • Sisseehitatud DLL-id laaditakse nüüd ainult siis, kui kettal on vastav PE-fail, olenemata sellest, kas tegemist on päris teegi või tünniga. See muudatus võimaldab rakendusel näha alati õiget seost PE-failidega. Selle käitumise keelamiseks saate kasutada WINEBOOTSTRAPMODE keskkonnamuutujat.
  • WoW64
    • Rakendatud on WoW64 arhitektuur (64-bitine Windows-on-Windows), mis võimaldab 32-bitiste Windowsi rakenduste käitamist 64-bitistes Unixi protsessides. Tugi rakendatakse kihi ühendamise kaudu, mis teisendab 32-bitised NT-süsteemikõned 64-bitisteks kõnedeks NTDLL-ile.
    • WoW64 kihid on ette valmistatud enamiku Unixi teekide jaoks ja võimaldavad 32-bitistel PE-moodulitel juurdepääsu 64-bitistele Unixi teekidele. Kui kõik moodulid on PE-vormingusse teisendatud, on võimalik käivitada 32-bitised Windowsi rakendused ilma 32-bitisi Unixi teeke installimata.
  • Teemad
    • Teematoetus on rakendatud. Kaasas on disainiteemad “Light”, “Blue” ja “Classic Blue”, mida saab valida WineCfg konfiguraatori kaudu.
    • Lisatud on võimalus kohandada kõigi liidese juhtelementide välimust teemade kaudu. Elementide välimust värskendatakse automaatselt pärast kujundusteema muutmist.
    • Kõikidele sisseehitatud Wine'i rakendustele on lisatud teematugi. Rakendusi on kohandatud suure pikslitihedusega (High DPI) ekraanidele.
  • Graafika alamsüsteem
    • Lisatud on uus Win32u teek, mis sisaldab GDI32 ja USER32 teekide osi, mis on seotud graafika töötlemise ja akende haldamisega kerneli tasemel. Tulevikus alustatakse tööd draiveri komponentide, nagu winex32.drv ja winemac.drv, teisaldamisega Win11u-sse.
    • Vulkani draiver toetab Vulkani graafika API spetsifikatsiooni 1.2.201.
    • Pakub tuge viirutatud geomeetriliste objektide väljastamiseks Direct2D API kaudu koos võimalusega kontrollida, kas klõps tabab (takistustest).
    • Direct2D API pakub esmast tuge ID2D1Effecti liidese abil rakendatavatele visuaalsetele efektidele.
    • Direct2D API-le on lisatud tugi ID2D1MultiThread liidesele, mida kasutatakse eksklusiivse juurdepääsu korraldamiseks ressurssidele mitme lõimega rakendustes.
    • WindowsCodecsi teekide komplekt toetab piltide dekodeerimist WMP (Windows Media Photo) vormingus ja piltide kodeerimist DDS (DirectDraw Surface) vormingus. Me ei toeta enam piltide kodeerimist ICNS-vormingus (macOS-i jaoks), mida Windows ei toeta.
  • Direct3D
    • Uut renderdusmootorit on oluliselt täiustatud, tõlkides Direct3D-kutsed Vulkani graafika API-sse. Enamikus olukordades on Vulkani-põhise mootori Direct3D 10 ja 11 toe tase viidud samaväärseks vanema OpenGL-põhise mootoriga. Vulkani renderdusmootori lubamiseks määrake Direct3D registrimuutuja "renderer" väärtuseks "vulkan".
    • Rakendatud on palju Direct3D 10 ja 11 funktsioone, sealhulgas edasilükatud kontekstid, seadme kontekstis töötavad olekuobjektid, püsivad nihked puhvrites, korrast ära tekstuurivaadete kustutamine, andmete kopeerimine ressursside vahel tüübita vormingus (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A), jne. .
    • Lisatud on mitme monitori konfiguratsioonide tugi, mis võimaldab teil valida monitori Direct3D rakenduse kuvamiseks täisekraanirežiimis.
    • DXGI API pakub ekraani gammakorrektsiooni, mida Direct3D 10 ja 11 põhinevad rakendused saavad ekraani heleduse muutmiseks kasutada. Virtuaalsete kaadripuhvrite loendurite otsimine on lubatud (SwapChain).
    • Direct3D 12 lisab versiooni 1.1 juursignatuuride toe.
    • Vulkan API kaudu renderdatavas koodis on päringute töötlemise efektiivsus paranenud, kui süsteem toetab laiendust VK_EXT_host_query_reset.
    • Lisatud on võimalus GDI kaudu väljastada virtuaalseid kaadripuhvreid (SwapChain), kui OpenGL-i või Vulkanit ei saa kuvamiseks kasutada näiteks erinevatest protsessidest aknasse väljastades, näiteks CEF (Chromium Embedded Framework) raamistikul põhinevates programmides.
    • GLSL-i varjundi taustaprogrammi kasutamisel on varjundi juhiste jaoks tagatud "täpne" modifikaator.
    • DirectDraw API lisab toe 3D-renderdamisele süsteemimällu, kasutades selliseid 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 peate alates Wine 5.0-st kasutama "shader_backend".
    • Direct3D 12 toetamiseks vajate nüüd vähemalt vkd3d teegi versiooni 1.2.
  • D3DX
    • D3DX 10 juurutus on parandanud visuaalsete efektide raamistiku tuge ja lisanud tuge Windows Media Photo pildivormingule (JPEG XR)
    • Lisatud D3DX10 pakutavad tekstuuri loomise funktsioonid, näiteks D3DX10CreateTextureFromMemory().
    • Tarkvaraliidesed ID3DX10Sprite ja ID3DX10Font on osaliselt juurutatud.
  • Heli ja video
    • DirectShow ja Media Foundationi raamistiku GStreameri lisandmoodulid on ühendatud üheks ühiseks WineGStreameri taustaprogrammiks, mis peaks lihtsustama uute sisu dekodeerimise API-de arendamist.
    • WineGStreameri taustaprogrammi alusel on Windows Media objektid rakendatud sünkroonseks ja asünkroonseks lugemiseks.
    • Media Foundationi raamistiku juurutamist on veelgi täiustatud, lisatud on IMFPMediaPlayeri funktsionaalsuse ja näidisjaoturi tugi ning täiustatud EVR-i ja SAR-i renderduspuhvrite tuge.
    • Wineqtdecoder teek, mis pakub QuickTime-vormingu dekoodrit, on eemaldatud (kõik koodekid kasutavad nüüd GStreamerit).
  • Sisendseadmed
    • HID-protokolli (Human Interface Devices) toetavate sisendseadmete pinu on oluliselt täiustatud, pakkudes selliseid võimalusi nagu HID-deskriptorite sõelumine, HID-sõnumite töötlemine ja mini-HID-draiverite pakkumine.
    • Winebus.sys draiveri taustaprogrammides on täiustatud seadmete kirjelduste tõlkimist HID-sõnumiteks.
    • Lisatud uus DirectInput taustaprogramm juhtkangide jaoks, mis toetavad HID-protokolli. Rakendatud on võimalus kasutada juhtkangides tagasisideefekte. Täiustatud juhtkangi juhtpaneel. Optimeeritud suhtlus XInputiga ühilduvate seadmetega. WinMM-is on juhtkangi tugi teisaldatud DInputisse, selle asemel, et kasutada Linuxis evdevi taustaprogrammi ja macOS IOHID-is IOHID-i. Vana juhtkangi draiver winejoystick.drv on eemaldatud.
    • DInput moodulisse on lisatud uued testid, mis põhinevad virtuaalsete HID-seadmete kasutamisel ja ei vaja füüsilist seadet.
  • Tekst ja fondid
    • Lisatud Font Määra objekt DirectWrite'ile.
    • RichEdit rakendab TextHosti liidest õigesti.
  • Kernel (Windowsi kerneli liidesed)
    • Kui käivitate Wine'is tundmatu käivitatava faili (nt 'wine foo.msi'), kutsutakse nüüd start.exe, mis kutsub esile failitüübiga seotud töötlejad.
    • Lisatud tugi sünkroonimismehhanismidele NtAlertThreadByThreadId ja NtWaitForAlertByThreadId, mis sarnaneb Linuxi futexe-tele.
    • Lisatud tugi NT silumisobjektidele, mida kasutatakse kerneli funktsioonide silumiseks.
    • Lisatud on dünaamiliste registrivõtmete tugi jõudlusandmete salvestamiseks.
  • C Kestus
    • C käitusaeg rakendab tervet komplekti matemaatilisi funktsioone, mis kantakse üle peamiselt Musli raamatukogust.
    • Kõik CPU platvormid pakuvad ujukoma funktsioonide õiget tuge.
  • Võrgundusfunktsioonid
    • Täiustatud ühilduvusrežiim Internet Explorer 11 (IE11) jaoks, mida kasutatakse nüüd vaikimisi HTML-dokumentide töötlemiseks.
    • Mshtml teek rakendab ES6 JavaScripti režiimi (ECMAScript 2015), mis toetab selliseid funktsioone nagu let-avaldis ja kaardiobjekt.
    • Gecko mootori täiendustega MSI-pakettide installimine Wine'i töökataloogi toimub nüüd vajaduse korral, mitte Wine'i värskenduse ajal.
    • Lisatud DTLS-protokolli tugi.
    • Rakendatud on teenus NSI (Network Store Interface), mis salvestab ja edastab arvutis olevaid marsruutimist ja võrguliidest puudutavat teavet teistele teenustele.
    • WinSocki API-käitlejad, nagu setsockopt ja getsockopt, on teisaldatud NTDLL-i ja draiverisse afd.sys, et need vastaksid Windowsi arhitektuurile.
    • Wine'i enda võrguandmebaasi failid, nagu /etc/protocols ja /etc/networks, on nüüd installitud Wine'i töökataloogi, selle asemel et pääseda ligi sarnastele Unixi andmebaasidele.
  • Alternatiivsed platvormid
    • Lisatud on tugi Apple'i seadmetele, mis põhinevad M1 ARM kiipidel (Apple Silicon).
    • BCrypti ja Secur32 funktsioonide tugi MacOS-is nõuab nüüd GnuTLS-i teegi installimist.
    • ARM-platvormide 32-bitised käivitatavad failid on nüüd sarnaselt Windowsiga loodud režiimis Thumb-2. Selliste failide laadimiseks kasutatakse eellaadijat.
    • 32-bitiste ARM-platvormide jaoks on rakendatud erandite lahtikerimise tugi.
    • FreeBSD puhul on suurendatud madala taseme süsteemiteabe (nt mälu olek ja aku laetuse tase) toetatavate päringute arvu.
  • Sisseehitatud rakendused ja arendustööriistad
    • Utiliit reg.exe on lisanud toe 32- ja 64-bitistele registrivaadetele. Lisatud tugi registrivõtmete kopeerimiseks.
    • Utiliit WineDump on lisanud toe Windowsi metaandmete dumpingusse ja CodeView kirjete üksikasjaliku teabe kuvamiseks.
    • Wine Debugger (winedbg) annab võimaluse siluda 32-bitisi protsesse 64-bitisest silurist.
    • IDL-i kompilaatorisse (widl) on lisatud PE-failidesse sisseehitatud teekide laadimise võimalus, pakutud on WinRT-spetsiifiliste atribuutide ja konstruktsioonide tugi ning juurutatud on platvormipõhine teegiotsing.
  • Montaažisüsteem
    • Arhitektuurispetsiifilistes kataloogides salvestatakse teegid nüüd nimedega, mis kajastavad arhitektuuri ja käivitatava faili tüüpi, näiteks 'i386-windows' PE-vormingu jaoks ja 'x86_64-unix' unixi teekide jaoks, mis võimaldab ühes Wine'is toetada erinevaid arhitektuure. paigaldamine ja Winelibi ristkompileerimine.
    • PE-failide päistesse suvandi määramiseks, mis juhib üleminekut natiivsete DLL-ide kasutamisele, on veiniehitusele lisatud lipp "--prefer-native option" (DLL_WINE_PREATTACH töötlemine DllMainis on peatatud).
    • Lisati tugi Dwarfi silumisandmete vormingu versioonile 4, mida kasutatakse nüüd vaikimisi Wine'i teekide koostamisel.
    • Lisatud järgu valik „—enable-build-id”, et salvestada käivitatavatesse failidesse kordumatu järgu identifikaator.
    • Lisatud tugi Clangi kompilaatori kasutamiseks MSVC ühilduvusrežiimis.
  • Varia
    • Tüüpiliste kataloogide nimed kasutaja kestas (Windows Shell) antakse kasutatavale skeemile alates Windows Vistast, st. „Minu dokumendid” asemel luuakse nüüd kataloog „Dokumendid” ja suurem osa andmetest salvestatakse kataloogi „AppData”.
    • OpenCL-i teegikihile on lisatud OpenCL 1.2 spetsifikatsiooni tugi.
    • WinSpooli draiver on lisanud printimisel erinevate lehesuuruste toe.
    • Lisatud esialgne tugi MSDASQL-ile, Microsoft OLE DB pakkujale ODBC draiverite jaoks.
    • NET-platvormi juurutusega Wine Mono mootorit on värskendatud versioonile 7.0.0.
    • Unicode'i andmed on värskendatud Unicode 14 spetsifikatsioonile.
    • Lähtepuu sisaldab Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ja Zlib teeke, mis on koostatud PE-vormingus ja ei vaja Unixi-vormingus versiooni. Samal ajal saab neid teeke ka süsteemist importida, et kasutada sisseehitatud PE-valikute asemel väliseid komplekte.

Allikas: opennet.ru

Lisa kommentaar