Ukukhishwa okuzinzile kweWine 7.0

Ngemva konyaka wentuthuko kanye nezinguqulo ezingu-30 zokuhlola, ukukhululwa okuzinzile kokuqaliswa okuvulekile kwe-Win32 API kwethulwa - I-Wine 7.0, ehlanganisa izinguquko ezingaphezu kwe-9100. Izimpumelelo eziyinhloko zenguqulo entsha zihlanganisa ukuhunyushwa kwamamojula amaningi Wewayini kufomethi ye-PE, ukusekelwa kwezindikimba, ukunwetshwa kwesitaki sezinduku zenjabulo kanye namadivayisi okokufaka ane-HID interface, kanye nokuqaliswa kwezakhiwo ze-WoW64 zokuqalisa izinhlelo ezingama-32-bit 64-bit imvelo.

Iwayini liqinisekise ukusebenza okugcwele kwezinhlelo ezingu-5156 (onyakeni odlule 5049) ze-Windows, ezinye izinhlelo ezingu-4312 (onyakeni odlule 4227) zisebenza kahle ngezilungiselelo ezengeziwe kanye nama-DLL angaphandle. Izinhlelo ezingu-3813 (eminyakeni engu-3703 edlule) zinezinkinga ezincane zokusebenza ezingaphazamisi ukusetshenziswa kwemisebenzi eyinhloko yezinhlelo zokusebenza.

Okuqanjwe kabusha okubalulekile ku-Wine 7.0:

  • Amamojula ngefomethi ye-PE
    • Cishe wonke ama-DLL ashintshiwe ukuze asebenzise ifomethi yefayela elisebenzisekayo le-PE (Portable Executable, esetshenziswa ku-Windows) esikhundleni se-ELF. Ukusetshenziswa kwe-PE kuxazulula izinkinga ngokusekela izikimu ezihlukahlukene zokuvikela ikhophi eziqinisekisa ubunikazi bamamojula wesistimu kudiski nasenkumbulweni.
    • Ikhono lokusebenzisa amamojula e-PE nemitapo yolwazi ye-Unix kusetshenziswa ucingo olujwayelekile lwesistimu ye-NT kernel seliqalisiwe, elikuvumela ukuthi ufihle ukufinyelela kukhodi ye-Unix kubalungisi be-Windows futhi ugade ukubhaliswa kwentambo.
    • Ama-DLL akhelwe ngaphakathi manje alayishwa kuphela uma kukhona ifayela le-PE elihambisanayo kudiski, kungakhathaliseki ukuthi umtapo wezincwadi wangempela noma i-stub. Lolu shintsho luvumela uhlelo lokusebenza ukuthi luhlale lubona ukubophezela okulungile kumafayela e-PE. Ukuze ukhubaze lokhu kuziphatha, ungasebenzisa i-WINEBOOTSTRAPMODE eguquguqukayo yemvelo.
  • Wow64
    • I-Architecture ye-WoW64 (64-bit Windows-on-Windows) isiqalisiwe, okukuvumela ukuthi usebenzise izinhlelo zokusebenza ze-Windows ezingama-32 kuzinqubo ze-Unix ezingama-64. Usekelo lwenziwa ngoxhumo lwesendlalelo esihumusha izingcingo zesistimu ye-32-bit NT zibe amakholi angu-64-bit ku-NTDLL.
    • Izendlalelo ze-WoW64 zilungiselelwa imitapo yolwazi eminingi ye-Unix futhi zivumela amamojula we-32-bit PE ukuthi afinyelele kulabhulali ye-Unix engu-64-bit. Uma wonke amamojula eseguqulelwe kufomethi ye-PE, kuzokwazi ukusebenzisa izinhlelo zokusebenza ze-32-bit Windows ngaphandle kokufaka imitapo yolwazi ye-32-bit Unix.
  • Izindikimba
    • Usekelo lwetimu selusetshenzisiwe. Izindikimba zokuklama "Ukukhanya", "Blue" kanye "ne-Classic Blue" zifakiwe, ezingakhethwa ngokusebenzisa i-WineCfg configurator.
    • Kwengezwe amandla okwenza ngendlela oyifisayo ukubukeka kwazo zonke izilawuli ze-interface ngokusebenzisa amatimu. Ukubonakala kwezinto kubuyekezwa ngokuzenzakalela ngemva kokushintsha itimu yokuklama.
    • Usekelo lwetimu lwengeziwe kuzo zonke izinhlelo zokusebenza zewayini ezakhelwe ngaphakathi. Izinhlelo zokusebenza ziguqulelwe kuzikrini ezinokuminyana kwamaphikseli aphezulu (High DPI).
  • Isistimu engaphansi yezithombe
    • Umtapo wolwazi we-Win32u omusha wengeziwe, ohlanganisa izingxenye zemitapo yolwazi ye-GDI32 kanye ne-USER32 ehlobene nokucutshungulwa kwezithombe nokuphathwa kwamawindi ezingeni le-kernel. Ngokuzayo, umsebenzi uzoqala ekuthutheni izingxenye zomshayeli ezifana ne-winex32.drv ne-winemac.drv kuye ku-Win11u.
    • Umshayeli we-Vulkan usekela ukucaciswa kwe-Vulkan graphics API 1.2.201.
    • Kunikezwe ukusekelwa kokukhipha izinto zejiyomethri ezichanyuselwe nge-Direct2D API, enekhono lokuhlola ukuthi ukuchofoza kuyashaya yini (i-hit-test).
    • I-Direct2D API inikeza ukwesekwa kokuqala kwemiphumela ebonakalayo esetshenziswa kusetshenziswa isixhumi esibonakalayo se-ID2D1Effect.
    • I-Direct2D API yengeze usekelo lwesixhumi esibonakalayo se-ID2D1MultiThread, esisetshenziselwa ukuhlela ukufinyelela okukhethekile kuzinsiza ezinhlelweni ezinezintambo eziningi.
    • Isethi yemitapo yolwazi ye-WindowsCodecs inikeza ukwesekwa kokuqoshwa kwezithombe ngefomethi ye-WMP (Windows Media Photo) kanye nezithombe ezifaka ikhodi ngefomethi ye-DDS (DirectDraw Surface). Asisasekeli izithombe zombhalo wekhodi ngefomethi ye-ICNS (ye-macOS), engasekelwe ku-Windows.
  • I-Direct3D
    • Injini entsha yokunikezela ithuthukiswe kakhulu, ihumushela izingcingo ze-Direct3D ku-API yezithombe ze-Vulkan. Ezimweni eziningi, izinga lokusekelwa kwe-Direct3D 10 kanye ne-11 enjinini esekelwe ku-Vulkan lenziwe lalingana nenjini endala esekwe ku-OpenGL. Ukuze unike amandla injini yokunikezela ye-Vulkan, setha okuguquguqukayo kokubhaliswa kwe-Direct3D "renderer" kube "vulkan".
    • Izici eziningi ze-Direct3D 10 kanye ne-11 ziyasetshenziswa, okuhlanganisa I-Deferred Contexts, izinto zesifunda ezisebenza kumongo wedivayisi, ukulungisa okuphikelelayo kumabhafa, ukususa ukubukwa kokuthungwa okungaphandle kwe-oda, ukukopisha idatha phakathi kwezinsiza ngamafomethi angenalo uhlobo (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32B). .
    • Ukwesekwa okwengeziwe kokucushwa kokuqapha okuningi, okukuvumela ukuthi ukhethe imonitha ukuze ubonise uhlelo lokusebenza lwe-Direct3D kumodi yesikrini esigcwele.
    • I-DXGI API inikeza ukulungiswa kwe-gamma yesikrini, engasetshenziswa yi-Direct3D 10 kanye nezinhlelo zokusebenza ezisekelwe ku-11 ukushintsha ukukhanya kwesikrini. Kunikwe amandla ukubuyiswa kwezinto zokubala ze-virtual framebuffers (SwapChain).
    • I-Direct3D 12 yengeza ukusekelwa kwenguqulo 1.1 yesiginesha yezimpande.
    • Ekhodini yokunikezela nge-Vulkan API, ukusebenza kahle kokucutshungulwa kombuzo kuye kwathuthukiswa lapho isistimu isekela isandiso se-VK_EXT_host_query_reset.
    • Kwengezwe amandla okukhipha amafreyimu abonakalayo (i-SwapChain) nge-GDI uma i-OpenGL noma i-Vulkan ingakwazi ukusetshenziselwa ukubonisa, isibonelo, uma ikhishelwa efasiteleni kusuka kuzinqubo ezahlukene, isibonelo, ezinhlelweni ezisekelwe kuhlaka lwe-CEF (Chromium Embedded Framework).
    • Uma usebenzisa i-backend ye-shader ye-GLSL, isilungisi "esinembile" siqinisekiswa ukuze uthole imiyalelo ye-shader.
    • I-DirectDraw API yengeza ukusekelwa kokunikezwa kwe-3D kumemori yohlelo isebenzisa amadivaysi esofthiwe afana ne-"RGB", "MMX" kanye "neRamp".
    • Amakhadi e-AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 kanye ne-NVIDIA GT 630 angeziwe kusizindalwazi samakhadi ezithombe ze-Direct1030D.
    • Ukhiye othi “UseGLSL” ususiwe ebhukwini le-HKEY_CURRENT_USER\Software\Wine\Direct3D, esikhundleni salokho, ukuqala ngeWine 5.0, udinga ukusebenzisa “shader_backend”.
    • Ukuze usekele i-Direct3D 12, manje udinga okungenani inguqulo 3 yomtapo wezincwadi we-vkd1.2d.
  • I-D3DX
    • Ukuqaliswa kwe-D3DX 10 kuye kwathuthukisa ukusekelwa kohlaka lwemiphumela yokubuka futhi kwengeza ukusekelwa kwefomethi yesithombe seWindows Media Photo (JPEG XR)
    • Imisebenzi engeziwe yokudala ukuthungwa enikezwe ku-D3DX10, njenge-D3DX10CreateTextureFromMemory().
    • Izixhumanisi zesoftware ye-ID3DX10Sprite ne-ID3DX10Font zisetshenziswe ngokwengxenye.
  • Umsindo nevidiyo
    • Izengezo ze-GStreamer ze-DirectShow kanye nohlaka lwe-Media Foundation zihlanganiswa zibe yi-backend eyodwa evamile ye-WineGStreamer, okufanele yenze kube lula ukuthuthukiswa kwama-API amasha wokuqopha okuqukethwe.
    • Ngokusekelwe ku-backend ye-WineGStreamer, izinto ze-Windows Media zisetshenziselwa ukufundwa okuvumelanayo nokuvumelanayo.
    • Ukuqaliswa kohlaka lweMedia Foundation kuthuthukisiwe, ukusekelwa kokusebenza kwe-IMFPMediaPlayer kanye nesampula esabiwayo seyengeziwe, futhi nokusekelwa kwe-EVR kanye ne-SAR yokunikeza amabhafa kuye kwathuthukiswa.
    • Umtapo wezincwadi we-wineqtdecoder, ohlinzeka ngedikhoda yefomethi ye-QuickTime, ususiwe (wonke ama-codec manje asebenzisa i-GStreamer).
  • Amadivayisi wokufaka
    • Isitaki samadivayisi okokufaka asekela iphrothokholi ye-HID (Human Interface Devices) sithuthukiswe kakhulu, sinikeza amakhono afana nokuhlaziya izichazi ze-HID, ukucubungula imilayezo ye-HID, nokuhlinzeka ngezishayeli ze-mini-HID.
    • Ngasemuva komshayeli we-winebus.sys, ukuhunyushwa kwezincazelo zedivayisi kumilayezo ye-HID kuthuthukisiwe.
    • Kwengezwe i-backend entsha ye-DirectInput yama-joystick asekela iphrothokholi ye-HID. Amandla okusebenzisa imiphumela yempendulo kuma-joystick asetshenzisiwe. Iphaneli yokulawula induku yokudlala ethuthukisiwe. Ukusebenzisana okulungiselelwe ngamadivayisi ahambisanayo we-XInput. Ku-WinMM, ukwesekwa kwenduku yokudlala kuthuthelwe ku-DInput, esikhundleni sokusebenzisa i-evdev backend ku-Linux ne-IOHID ku-macOS IOHID. Umshayeli we-joystick endala i-winejoystick.drv isusiwe.
    • Ukuhlola okusha kwengezwe kumojula ye-DInput, ngokusekelwe ekusetshenzisweni kwamadivayisi abonakalayo e-HID futhi okungadingi idivayisi ephathekayo.
  • Umbhalo namafonti
    • Kwengezwe Ifonti Setha into ku-DirectWrite.
    • I-RichEdit isebenzisa kahle i-TextHost interface.
  • I-Kernel (I-Windows Kernel Interfaces)
    • Uma usebenzisa ifayela elisebenzisekayo elingaziwa (elifana ne-'wine foo.msi') ku-Wine, i-start.exe manje isibizwa, okucela izibambi ezihlotshaniswa nohlobo lwefayela.
    • Usekelo olungeziwe lwezindlela zokuvumelanisa i-NtAlertThreadByThreadId ne-NtWaitForAlertByThreadId, efana namafutex ku-Linux.
    • Usekelo olungeziwe lwezinto zokususa iphutha ze-NT ezisetshenziselwa ukulungisa amaphutha emisebenzini ye-kernel.
    • Kungezwe usekelo lokhiye bokubhalisa abaguqukayo ukuze kugcinwe idatha yokusebenza.
  • C Isikhathi sokusebenza
    • Isikhathi sokusebenza se-C sisebenzisa isethi egcwele yemisebenzi yezibalo, ethwalwa kakhulu isuka kulabhulali ye-Musl.
    • Wonke amapulatifomu e-CPU ahlinzeka ngokusekelwa okulungile kwemisebenzi yamaphuzu antantayo.
  • Izici zokuxhumana kwenethiwekhi
    • Imodi yokuvumelana ethuthukisiwe ye-Internet Explorer 11 (IE11), manje esetshenziswa ngokuzenzakalelayo ukucubungula imibhalo ye-HTML.
    • Umtapo wezincwadi we-mshtml usebenzisa i-ES6 JavaScript mode (ECMAScript 2015), ehlinzeka ngosekelo lwezici ezifana ne-let expression kanye nento ye-Map.
    • Ukufakwa kwamaphakheji e-MSI anezengezo enjinini ye-Gecko ohlwini lwemibhalo olusebenzayo lwewayini manje sekwenziwa uma kunesidingo, hhayi phakathi nokubuyekezwa kwewayini.
    • Usekelo olungeziwe lwephrothokholi ye-DTLS.
    • Isevisi ye-NSI (Network Store Interface) isiqalisiwe, igcina futhi idlulisa ulwazi olumayelana nemizila nokuxhumana kwenethiwekhi kukhompyutha kuya kwezinye izinsiza.
    • Izibambi ze-WinSock API ezifana ne-setsockopt ne-getsockopt zithuthelwe ku-NTDLL kanye nomshayeli we-afd.sys ukuze ahambisane nezakhiwo ze-Windows.
    • Amafayela esizindalwazi senethiwekhi yewayini, njenge/etc/protocols kanye/etc/networks, manje asefakiwe kuhla lwemibhalo olusebenzayo lwewayini, esikhundleni sokufinyelela kusizindalwazi esifanayo se-Unix.
  • Ezinye izinkundla
    • Ukwesekwa okwengeziwe kwemishini ye-Apple esekelwe ku-M1 ARM chips (Apple Silicon).
    • Ukusekelwa kwezici ze-BCrypt ne-Secur32 ku-macOS manje kudinga ukufakwa kwelabhulali ye-GnuTLS.
    • Ama-32-bit asebenzisekayo wezingxenyekazi ze-ARM manje akhiwe ngemodi ye-Thumb-2, efana ne-Windows. Isilayishi sangaphambili sisetshenziswa ukulayisha amafayela anjalo.
    • Kuzinkundla ze-32-bit ARM, usekelo lokuhlehlisa okuhlukile selusetshenzisiwe.
    • Ku-FreeBSD, inombolo yemibuzo esekelwayo yolwazi lwesistimu yezinga eliphansi, njengesimo senkumbulo kanye neleveli yokushajwa kwebhethri, inwetshiwe.
  • Izinhlelo zokusebenza ezakhelwe ngaphakathi namathuluzi okuthuthukisa
    • Insiza ye-reg.exe yengeze ukwesekwa kokubukwa kokubhalisa okungu-32- no-64-bit. Kungezwe usekelo lokukopisha okhiye bokubhalisa.
    • Insiza ye-WineDump yengeze ukwesekwa kokulahla imethadatha ye-Windows kanye nokubonisa ulwazi oluningiliziwe mayelana nokufakiwe kwe-CodeView.
    • I-Wine Debugger (winedbg) inikeza amandla okulungisa izinqubo ze-32-bit kusuka kusilungisi se-64-bit.
    • Ikhono lokulayisha imitapo yolwazi eyakhelwe kumafayela e-PE lengeziwe ku-IDL compiler (widl), ukusekelwa kwezimfanelo ezithize ze-WinRT kanye nezakhiwo kuye kwanikezwa, futhi ukusesha komtapo wolwazi okuqondene nenkundla sekuqalisiwe.
  • Uhlelo lomhlangano
    • Ezinhlwini zemibhalo eziqondene nezakhiwo, imitapo yolwazi manje isilondolozwe ngamagama abonisa uhlobo lwezakhiwo kanye nohlobo olusebenzisekayo, njenge-'i386-windows' yefomethi ye-PE kanye ne-'x86_64-unix' yemitapo yolwazi e-unix, okuvumela ukusekelwa kwezakhiwo ezahlukene ngewayini elilodwa. ukufakwa nokuhlinzeka ngokuhlanganiswa kwe-Winelib.
    • Ukuze usethe inketho kuzihloko zamafayela e-PE alawula ukushintshela ekusebenziseni ama-DLL omdabu, ifulegi elithi '-prefer-native option' lengezwe ku-winebuild (ukucubungula kwe-DLL_WINE_PREATTACH ku-DllMain kumisiwe).
    • Usekelo olungeziwe lwenguqulo 4 yefomethi yedatha yokususa iphutha ye-Dwarf, manje esetshenziswa ngokuzenzakalelayo lapho kwakhiwa imitapo yolwazi yewayini.
    • Inketho yokwakha engeziwe '—enable-build-id' ukuze ulondoloze izihlonzi eziyingqayizivele kumafayela asebenzisekayo.
    • Kungezwe usekelo lokusebenzisa i-Clang compiler kumodi yokuhambisana ye-MSVC.
  • Разное
    • Amagama ezinkomba ezijwayelekile kugobolondo lomsebenzisi (i-Windows Shell) anikezwa kuhlelo olusetshenziswa kuqala nge-Windows Vista, i.e. Esikhundleni sokuthi 'Amadokhumenti Ami', uhla lwemibhalo 'lwemibhalo' seludaliwe, futhi idatha eminingi igcinwa kuhla lwemibhalo lwe-'AppData'.
    • Ukusekelwa kokucaciswa kwe-OpenCL 1.2 kwengezwe kungqimba lomtapo wezincwadi we-OpenCL.
    • Umshayeli we-WinSpool wengeze ukusekelwa kosayizi wekhasi abahlukene lapho uphrinta.
    • Kwengezwe ukusekelwa kokuqala kwe-MSDASQL, umhlinzeki we-Microsoft OLE DB wabashayeli be-ODBC.
    • Injini yeWine Mono ngokusetshenziswa kweplathifomu ye-NET ibuyekeziwe ukuze ikhulule i-7.0.0.
    • Idatha ye-Unicode ibuyekezwe ekucacisweni kwe-Unicode 14.
    • Isihlahla somthombo sihlanganisa i-Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt kanye nemitapo yolwazi ye-Zlib, ehlanganiswe ngefomethi ye-PE futhi engadingi inguqulo ngefomethi ye-Unix. Ngesikhathi esifanayo, le mitapo yolwazi ingabuye ingeniswe ohlelweni ukuze isebenzise imihlangano yangaphandle esikhundleni sezinketho ze-PE ezakhelwe ngaphakathi.

Source: opennet.ru

Engeza amazwana