Pas njĂ« viti zhvillimi dhe 26 versioneve eksperimentale, u prezantua lĂ«shimi i qĂ«ndrueshĂ«m i implementimit tĂ« hapur tĂ« Win32 API â Wine 9.0, i cili pĂ«rmban mbi 7000 ndryshime. Nga arritjet kryesore nĂ« versionin e ri, spikasin implementimi i arkitekturĂ«s WoW64 pĂ«r ekzekutimin e programeve 32-bit nĂ« njĂ« mjedis 64-bit, integrimi i njĂ« drejtuesi pĂ«r mbĂ«shtetje tĂ« Wayland, mbĂ«shtetje pĂ«r arkitekturĂ«n ARM64, implementimi i API-sĂ« DirectMusic dhe mbĂ«shtetje pĂ«r karta inteligente.
Në Wine, është konfirmuar funksionimi i plotë të 5336 (një vit më parë 5266, dy vjet më parë 5156, tre vjet më parë 5049) programeve për Windows, 4397 (një vit më parë 4370, dy vjet më parë 4312, tre vjet më parë 4227) programe funksionojnë mirë me konfigurime të këndshme dhe DLL të jashtme. 3943 programeve (një vit më parë 3888, dy vjet më parë 3813, tre vjet më parë 3703) i janë vërejtur disa probleme të vogla në funksionim, të cilat nuk pengojnë përdorimin e funksioneve kryesore të aplikacioneve.
Novitetet kryesore të Wine 9.0:
- Shtuar driver-i winewayland.drv, i cili lejon përdorimin e Wine në mjedise të bazuara në protokollin Wayland pa përdorur XWayland dhe komponentët X11. Zhvillimi synon të sigurojë funksionimin e një mjedisi të pastër Wayland me mbështetje për ekzekutimin e aplikacioneve Windows, pa kërkuar instalimin e paketave të lidhura me X11, duke mundësuar kështu një performancë më të lartë dhe reagim më të shpejtë të lojërave për shkak të eliminimit të shtresave të panevojshme. Përdorimi i një mjedisi të pastër Wayland për Wine gjithashtu lejon elimimin e problemeve të sigurisë që lidhen me X11 (për shembull, lojërat e pasigurta për X11 mund të spiunojnë aplikacione të tjera sepse protokolli X11 lejon qasje në të gjithë ngjarjet e hyrjes dhe në përmbushjen e shtypjeve të simuluara të çelësve).
Drejti është shënuar si eksperimental dhe në zhvillim, megjithatë, ai tashmë ofron mbështetje për shumë funksionalitete, si menaxhimi i dritareve, përdorimi me monitorë të shumtë, mbështetje për shkallëzimin e daljes në ekrane me dendësi të lartë pikselash (high-DPI), përdorimi i koordinatave relative për gjurmimin e lëvizjes së mausit dhe mbështetje për API grafik Vulkan. Në mënyrë default, drejtori nuk është aktiv dhe për ta aktivizuar atë, duhet të shtoni "wayland" në parametrin e regjistrit "HKCU\Software\Wine\Drivers" dhe të siguroheni që variable e mjedisit DISPLAY të mos jetë e vendosur: wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland
- ĂshtĂ« bĂ«rĂ« pĂ«rkthimi i tĂ« gjithĂ« moduleve nĂ« ndĂ«rfaqen e thirrjeve sistemore NT, nĂ« vend qĂ« tĂ« bĂ«hen thirrje tĂ« drejtpĂ«rdrejta midis niveleve PE dhe Unix, gjĂ« qĂ« shĂ«non pĂ«rfundimin e njĂ« pune tĂ« gjatĂ« pĂ«r pĂ«rkthimin e tĂ« gjithĂ« bibliotekave DLL nĂ« pĂ«rdorimin e formatit tĂ« skedarĂ«ve tĂ« ekzekutueshĂ«m PE (Portable Executable).
- ĂshtĂ« vazhduar zhvillimi i shtresĂ«s WoW64 (Windows-on-Windows 64-bit), e cila lejon ekzekutimin e aplikacioneve Windows 32-bit nĂ« sistemet Unix 64-bit. NĂ« tĂ« gjitha modulat qĂ« ndĂ«rlidhen me bibliotekat Unix, janĂ« pĂ«rdorur konvertuesit e thirrjeve sistemore WoW64 (thunk), tĂ« cilat lejojnĂ« modulave 32-bit nĂ« formatin PE tĂ« aksesojnĂ« bibliotekat Unix 64-bit.
ĂshtĂ« pĂ«rmirĂ«suar moda e re e ekzekutimit WoW64, nĂ« tĂ« cilĂ«n kodi 32-bit ekzekutohet brenda njĂ« procesi 64-bit (nĂ« modĂ«n e vjetĂ«r WoW64, aplikacionet 32-bit fillonin nĂ« procese Unix 32-bit). ĂshtĂ« shtuar mbĂ«shtetje pĂ«r aplikimin e modĂ«s sĂ« re WoW64 nĂ« platformĂ«n macOS. Duke qenĂ« se nĂ« modĂ«n e re WoW64 janĂ« shĂ«nuar disa probleme, tĂ« tilla si mungesa e mbĂ«shtetjes pĂ«r modin 16-bit dhe ulja e performancĂ«s OpenGL pĂ«r shkak tĂ« mungesĂ«s sĂ« mbĂ«shtetjes pĂ«r zgjerimin ARB_buffer_storage, ajo nuk Ă«shtĂ« pĂ«rfshirĂ« ende si standard dhe kĂ«rkon ndĂ«rtim me opsionin «âenable-archs=i386,x86_64» nĂ« skenarin configure.
- Shtuar mundësia e ekzekutimit të skedareve ekzistues ekzekutivë Windows në sistemet me arkitekturë ARM64. Realizuar mundësia e ndërtimit të Wine për ABI ARM64EC (ARM64 Emulation Compatible) dhe mbështetje për ngarkimin e moduleve ARM64EC, të përdorura për lehtësimin e portimit të aplikacioneve për sisteme ARM64, që janë shkruar fillimisht për arkitekturën x86_64, duke ofruar mundësinë e ekzekutimit në mjedisin ARM64 të moduleve të veçanta me kod x86_64 përmes emulatorit. Shtuar mbështetje për formatin PE të skedarëve ARM64X, i cili lejon ngarkimin e një skedari ekzekutiv në proceset x64/Arm64EC dhe ARM64. Realizuar ndërfaqja për emulim të sistemeve 32-bit x86, por biblioteka me emulatorin akoma nuk është përfshirë në përbërjen kryesore të Wine (për të ekzekutuar kodin x86 në mjedisin ARM64, mund të përdoret emulatori i jashtëm FEX).
- Nënshkrimi grafik
- Drejtuesi PostScript është riparuar për të mbështetur skedaret spool në formatin Windows, në të cilat ruhen të dhëna për detyrat që shkruhen në printim. Janë eliminuar thirrjet direkte për drejtuesin nga mjedisi Unix.
- Temave të dizajnit WinRT i është shtuar mbështetje për modin e errët. Në WineCfg është shtuar një cilësim për aktivizimin e dizajnit të errët të ndërfaqes.
- Drejtori për API grafik Vulkan ka shtuar mbështetje për specifikimin Vulkan 1.3.272 (në Wine 8.0 mbështetje kishte për 1.3.237).
- Janë optimizuar funksionet e bibliotekës GdiPlus, duke rritur performancën në punën me grafikën.
- Direct3D
- ĂshtĂ« siguruar pezullimi i analizĂ«s sĂ« rrjedhĂ«s shumĂ«prurĂ«s tĂ« komandave nĂ« kushte ku nuk ka komanda pĂ«r pĂ«rpunim, duke lejuar uljen e konsumit tĂ« energjisĂ« nĂ« nivelin e pĂ«rpunimit njĂ«prurĂ«s gjatĂ« ekzekutimit tĂ« programeve qĂ« nuk pĂ«rdorin tĂ« gjithĂ« bandwidth-in e rrjedhĂ«s sĂ« komandave.
- Në Direct3D 10 është realizuar mbështetje për efekte shtesë.
- Janë bërë optimizime të performancës në kodin WineD3D dhe backendin që përdor API-në grafike Vulkan.
- Në kodin e vizatimit të bazuar në API Vulkan është shtuar kontrolli i mundësive të mbështetura nga pajisja dhe dalja e informacionit për aplikacionin mbi nivelin e disponueshëm të funksionalitetit të Direct3D.
- Janë realizuar funksionet D3DXFillTextureTX dhe D3DXFillCubeTextureTX.
- Në backendin klasik të shaderave OpenGL ARB është shtuar mbështetje për përcaktimin e hijeve përmes zgjerimit ARB_fragment_program_shadow.
- Në D3DXLoadMeshHierarchyFromX dhe funksione të ngjashme është shtuar mbështetje për ngarkimin e të dhënave të zakonshme përmes ndërfaqes ID3DXLoadUserData.
- Të dhënat dhe video
- Implementimi fillestar i API-së DirectMusic është propozuar. Shtuar mbështetje për koleksionet, instrumentet dhe mostra të tingujve në formatin SoundFont. Shtuar mbështetje për efektin Doppler. Janë realizuar teste për të verifikuar saktësinë e implementimit gjatë funksionimit të sekvencorit dmime dhe sintetizatorit MIDI dmsynth.
- Për përdorim në API-në DirectMusic, është e integruar biblioteka FluidSynth.
- Janë implementuar mbështetje për ngarkimin e fontëve të tingujve (SoundFont - formate për sintezë të bazuar në mostra, të përdorura për riprodhimin e skedarëve MIDI) në formatet DLS1 dhe DLS2, si dhe në formatin SF2, i përdorur në Linux.
- Shtuar mundësia e riprodhimit të përmbajtjes MIDI me anë të bibliotekës dmsynth, duke përdorur sintetizatorin programor FluidSynth dhe API-në DirectSound për daljen e tingullit.
- Shtuar një dekoder për video në formatin e kodekëve të videos Indeo IV50.
- DirectShow
- Janë realizuar komponenti DMO (DirectX Media Object) me dekoder të formatit WMV (Windows Media Video).
- Shtuar filtrin e kapjes së tingullit (DirectShow Audio Capture Filter).
- Në filtrin e ndarjes së rrjedhave MPEG-1 (DirectShow MPEG-1 Stream Splitter) përveç rrjedhave audio është shtuar mbështetje për rrjedhat video dhe rrjedhat shërbyese.
- ĂshtĂ« implementuar njĂ« filtĂ«r pĂ«r dekodimin e videos nĂ« formatin MPEGâ1 (DirectShow MPEGâ1 Video Decoder).
- Pajisjet hyrëse
- Në DirectInput është implementuar mbështetje për hartimin e veprimeve (action maps), duke lejuar lidhjen e butonave në kontrollorin e lojërave me veprime të caktuara në lojëra.
- Integrimi me desktopin
- ĂshtĂ« siguruar eksportimi nĂ« mjedisin e pĂ«rdoruesit kryesor tĂ« lidhjeve, duke lejuar thirrjen e aplikacioneve tĂ« drejtuara nga Wine si pĂ«rpunues tĂ« protokolleve kur hapen URL (p.sh., nisja e spotify.exe kur hapen lidhjet e stilit «spotify:user:spotify:playlist:848218482355482821»).
- ĂshtĂ« implementuar nxjerrja e tĂ« dhĂ«nave EDID (TĂ« DhĂ«nat e Identifikimit tĂ« Shfaqjes tĂ« Zgjatur) me informacion mbi parametrat e monitorit tĂ« lidhur, si emri dhe modeli i pajisjes.
- ĂshtĂ« ofruar mundĂ«sia pĂ«r tĂ« mbyllur dritaren e desktopit, e ndarĂ« nĂ« modalitetin e plotĂ« tĂ« ekranit, duke pĂ«rdorur butonin «Exit desktop» nĂ« menunĂ« «Start».
- Internacionalizimi
- ĂshtĂ« zgjeruar mbĂ«shtetja pĂ«r IME (Redaktuesit e Metodave tĂ« Hyrjes). ĂshtĂ« punuar pĂ«r tĂ« siguruar kompatibilitet me realizimet native tĂ« Windows tĂ« IME dhe pĂ«r tĂ« pĂ«rmirĂ«suar integrimin me IME tĂ« Linux.
- Generimi i databazës së lokalizimeve në formatin locale.nls nga databaza Unicode CLDR (Repozitori i të Dhënave të Përbashkëta të Locale) versioni 44. Shtuar mbështetje për lokalizimet e tjera bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA, prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN dhe za-CN.
- Përkthimi i ndërfaqes në gjuhën gjeorgjiane është përfunduar. Përkthime të plota janë siguruar për 16 gjuhë, ndërsa të pjesshme për 31 gjuhë.
- Tabelat e simboleve Unicode janë përditësuar në versionin 15.1.0 të standardit. E kaluara e zonave të kohës është përditësuar.
- Kernel (ndërfaqet e kernelit Windows)
- Si version i paracaktuar të lëshuar të Windows është caktuar Windows 10.
- Për skedarët ekzekutivë në formatin PE është realizuar mbështetje për randomizimin e adresave të hapësirës (ASLR), por adresat e ngarkimit të kodit në memorie ende nuk janë randomizuar plotësisht.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r grumbullin e fragmentuar dobĂ«t (LFH, Low Fragmentation Heap), duke rritur performancĂ«n e operacioneve tĂ« alokimit tĂ« memories.
- Në mekanizmin për alokimin e memories virtuale është shtuar mbështetje për rezervimin e memories (placeholder), e cila i lejon aplikacionit të rezervojë një zonë të caktuar të memories virtuale për përdorim në të ardhmen.
- Ngarkuesit 64-bit (loader dhe preloader) të skedareve ekzekutues dhe librarive janë të mbledhur në formatin PIE (Position-Independent Executables) për të çliruar një pjesë të hapësirës adresore 32-bit.
- Sigurohet gjenerimi i saktë të stack-ut (stack unwinding) për thirrjet e sistemit NT dhe thirrjet kthimore të përdoruesit.
- Aftësitë rrjetërore
- Në motorin MSHTML është implementuar mbështetje për mekanizmin e mbledhjes së mbeturinave 'Cycle Collection'.
- Në MSHTML është shtuar mbështetje për modalitetin sinhron të përpunimit të kërkesave XMLHttpRequest.
- Në jscript.dll është shtuar mbështetje për objektin WeakMap për të punuar me koleksionin e çiftëve çelës/vlerë, ku çelësi është një objekt, të cilit mund t'i bashkangjitet një vlerë e çfarëdo lloji. Janë implementuar metodat WeakMap.get(), WeakMap.delete(), WeakMap.clear() dhe WeakMap.has().
- Moti i shfletuesit Gecko është përditësuar në versionin 2.47.4.
- ĂshtĂ« implementuar mbĂ«shtetje pĂ«r njoftimet mbi ndryshimin e gjendjes sĂ« ndĂ«rfaqes rrjetĂ«rore.
- Kriptografia dhe siguria
- Në bibliotekën Winscard.dll është shtuar mbështetje për kartat inteligjente, e implementuar përmes bibliotekës sistemore PCSClite.
- Në BCrypt është shtuar mbështetje për protokollin e shkëmbimit të çelësave Diffie-Hellman.
- Paketa Negotiate është realizuar, duke ofruar një ndërfaqe për përdorimin e SSPI (Interfejsit të Mbështetjes së Sigurisë) për t'u drejtuar te ofruesit e SSP (Ofruesit e Mbështetjes së Sigurisë).
- Aplikacionet e integruara
- Në debugin Wine Debugger (winedbg) për disasëmblimin e instrukcioneve makinerike X86 është angazhuar biblioteka Zydis.
- Në ndërfaqen WineCfg është shtuar mundësia e vendosjes në platformat 64-bit të versioneve të vjetra të Windows (deri në XP), e cila lejon ekzekutimin e aplikacioneve të vjetra duke përdorur modalitetin WoW64.
- Në të gjitha aplikacionet grafike të integruara është realizuar shfaqja e informacionit për gabimet në një dialog të veçantë, në vend të shfaqjes së tyre në konsolë.
- Në programin systeminfo është siguruar shfaqja e informacionit nga Baza e të Dhënave WMI (Instrumentacioni i Menaxhimit të Windows).
- ĂshtĂ« shtuar aplikacioni klist pĂ«r shfaqjen e tiketeve Kerberos.
- Në aplikacionin taskkill është realizuar mundësia e përfundimit të detyrave nën proces.
- Në utilitarin start është shtuar parametrin "/machine" për të zgjedhur arkitekturën e përdorur gjatë ekzekutimit të skedarëve hibridë të ekzekutueshëm, që mbështesin x86 dhe ARM.
- ĂshtĂ« realizuar njĂ« pjesĂ« e madhe e funksionalitetit tĂ« programit tasklist.
- ĂshtĂ« shtuar implementimi i bazĂ«s sĂ« aplikacionit findstr.
- Mjetet për zhvillim
- Në utilitarin WineDump është implementuar mundësia për të nxjerrë përmbajtjen e skedarëve të regjistrit të Windows (formati REGF), si dhe për të shfaqur të dhëna për të gjitha arkitekturët (x86/ARM64) që mbështeten në skedarët hibridë PE.
- Në kompilatorin IDL është shtuar mbështetje për atributet «composable», «default_overload», «deprecated» dhe «protected».
- Biblioteka libwine.so, e cila ishte shpallur e tejkaluar në versionin Wine 6.0 dhe nuk është përdorur për një kohë të gjatë në Wine, është hequr. Programet në formatin ELF, të ndërtuara në versionet e vjetra të Wine (5.0 dhe më parë) me libwine.so, kërkojnë ri-ndërtim për të funksionuar në Wine 9.0.
- Biblioteka të dëgjuara dhe varësi të jashtme
- Në paketë janë integruar bibliotekat FluidSynth 2.3.3, Musl 1.2.3 (vetëm funksionet matematikore) dhe Zydis 4.0.0.
- Komponentët Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 dhe Zlib 1.3 janë përmirësuar në versione të reja. Motorri Wine Mono me implementimin e platformës .NET është azhurnuar në versionin 8.1.0.
- Në drejtuesin winewayland.drv si varësi të jashtme është përfshirë biblioteka klienti Wayland, si dhe bibliotekat xkbcommon dhe xkbregistry.
- PĂ«r mbĂ«shtetje tĂ« kartave inteligjente Ă«shtĂ« pĂ«rfshirĂ« biblioteka e jashtme PCSClite (nĂ« macOS â PCSC).
- Për ndërtimin e skedarëve PE në platforma të tjera përveç i386, tani kërkohet një cross-compiler me mbështetje për direktivat "se" për përpunimin e përjashtimeve.
Burimi: opennet.ru
