Pagkatapos ng isang taon ng pag-unlad at 26 na pang-eksperimentong bersyon, ipinakita ang isang matatag na paglabas ng bukas na pagpapatupad ng Win32 API - Wine 9.0, na nagsama ng higit sa 7000 mga pagbabago. Kabilang sa mga pangunahing tagumpay sa bagong bersyon ang pagpapatupad ng arkitektura ng WoW64 para sa pagpapatakbo ng mga 32-bit na programa sa isang 64-bit na kapaligiran, pagsasama ng driver upang suportahan ang Wayland, suporta para sa arkitektura ng ARM64, pagpapatupad ng DirectMusic API at suporta para sa mga smart card.
Nakumpirmang gumagana nang maayos sa Wine ang mga programang 5336 (5266 isang taon na ang nakalilipas, 5156 dalawang taon na ang nakalilipas, 5049 tatlong taon na ang nakalilipas). WindowsMay 4397 pang programa (4370 isang taon na ang nakalipas, 4312 dalawang taon na ang nakalipas, 4227 tatlong taon na ang nakalipas) na gumagana nang maayos gamit ang mga karagdagang setting at mga panlabas na DLL. 3943 naman na programa (3888 isang taon na ang nakalipas, 3813 dalawang taon na ang nakalipas, 3703 tatlong taon na ang nakalipas) ang may maliliit na isyu na hindi nakakasagabal sa pangunahing paggana ng mga aplikasyon.
Mga pangunahing inobasyon sa Wine 9.0:
- Naidagdag na ang winewayland.drv driver, na nagpapahintulot sa Wine na magamit sa mga kapaligirang nakabase sa Wayland nang hindi gumagamit ng mga bahaging XWayland o X11. Ang pag-unlad na ito ay naglalayong magbigay ng isang purong kapaligirang Wayland na may suporta sa paglulunsad. Windows- mga application na hindi nangangailangan ng pag-install ng mga paketeng may kaugnayan sa X11, na nagbibigay-daan para sa mas mataas na pagganap at kakayahang tumugon sa mga laro sa pamamagitan ng pag-aalis ng mga hindi kinakailangang layer. Ang paggamit ng isang purong kapaligirang Wayland para sa Wine ay nag-aalis din ng mga isyu sa seguridad na likas sa X11 (halimbawa, ang mga hindi pinagkakatiwalaang laro sa X11 ay maaaring maniktik sa iba pang mga application dahil pinapayagan ng protocol ng X11 ang pag-access sa lahat ng mga kaganapan sa pag-input at magsagawa ng pagpapalit ng keystroke).
Ang driver ay minarkahan bilang eksperimento at nasa ilalim ng pag-unlad, ngunit, gayunpaman, mayroon na itong suporta para sa maraming mga tampok, tulad ng pamamahala ng window, nagtatrabaho sa maraming monitor, suporta para sa pag-scale ng output sa mga high-pixel density (high-DPI) na mga screen, nagtatrabaho sa kamag-anak na coordinate kapag sinusubaybayan ang paggalaw ng mouse at suporta para sa Vulkan graphics API. Bilang default, hindi aktibo ang driver at upang paganahin ito dapat mong idagdag ang "wayland" sa parameter ng registry na "HKCU\Software\Wine\Drivers" at tiyaking hindi nakatakda ang DISPLAY environment variable: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Graphics /d x11,wayland
- Ang lahat ng mga module ay na-convert sa NT system call interface, sa halip na gumawa ng mga direktang tawag sa pagitan ng mga layer ng PE at Unix, na minarkahan ang pagkumpleto ng maraming taon ng trabaho upang i-convert ang lahat ng DLL upang magamit ang PE (Portable Executable) executable na format ng file.
- Nagpatuloy ang pag-unlad ng WoW64 layer (64-bit) Windows-sa-Windows), na nagbibigay-daan sa iyong magpatakbo ng 32-bit Windows- mga aplikasyon sa 64-bit na mga sistemang Unix. Ang lahat ng mga module na kumukuha ng access sa mga library ng Unix ay gumagamit ng mga tagasalin ng system call ng WoW64 (thunks), na nagpapahintulot sa mga 32-bit na module sa format na PE na ma-access ang mga 64-bit na library ng Unix.
Pinahusay ang bagong WoW64 launch mode, na nagpapahintulot sa 32-bit code na tumakbo sa loob ng isang 64-bit na proseso (sa lumang WoW64 mode, ang mga 32-bit na aplikasyon ay tumatakbo sa 32-bit na mga proseso ng Unix). Idinagdag ang suporta para sa paggamit ng bagong WoW64 mode sa platform. macOSDahil ang bagong WoW64 mode ay may ilang maliliit na bug, tulad ng kakulangan ng suporta sa 16-bit at nabawasang pagganap ng OpenGL dahil sa kakulangan ng suporta para sa extension na ARB_buffer_storage, hindi pa ito naka-enable bilang default at nangangailangan ng pagbuo gamit ang opsyong "--enable-archs=i386,x86_64" sa configure script.
- Idinagdag ang kakayahang isagawa ang mga umiiral nang executable file Windows Sa mga sistemang may arkitekturang ARM64. Maaari nang bumuo ng Wine para sa ARM64EC (ARM64 Emulation Compatible) ABI, at maaaring i-load ang mga ARM64EC module. Ginagamit ang mga module na ito upang gawing simple ang pag-port ng mga application na orihinal na isinulat para sa arkitekturang x86_64 patungo sa mga sistemang ARM64 sa pamamagitan ng pagpapagana ng pagpapatupad ng mga indibidwal na x86_64 code module sa kapaligirang ARM64 gamit ang isang emulator. Idinagdag ang suporta para sa format ng file na ARM64X PE, na nagpapahintulot sa isang executable file na i-load sa parehong prosesong x64/Arm64EC at ARM64. Isang interface para sa pag-emulate ng mga 32-bit na x86 system ang naipatupad, ngunit ang emulator library ay hindi pa kasama sa pangunahing distribusyon ng Wine (ang panlabas na FEX emulator ay maaaring gamitin upang patakbuhin ang x86 code sa kapaligirang ARM64).
- Subsystem ng graphics
- Ang driver ng PostScript ay muling idinisenyo upang suportahan ang mga spool file sa format na Windows, na nag-iimbak ng datos tungkol sa mga trabaho sa pag-print. Hindi kasama ang mga direktang tawag sa driver mula sa kapaligirang Unix.
- Ang suporta sa dark mode ay idinagdag sa mga tema ng WinRT. Ang isang setting ay idinagdag sa WineCfg upang paganahin ang madilim na disenyo ng interface.
- Ang driver para sa Vulkan graphics API ay nagdagdag ng suporta para sa Vulkan 1.3.272 na detalye (8.0 ay suportado sa Wine 1.3.237).
- Ang mga function ng library ng GdiPlus ay na-optimize, na nagbibigay-daan para sa mas mataas na pagganap ng graphics.
- Direct3D
- Ang pag-parse ng isang multi-threaded na command stream ay sinuspinde kapag walang mga rendering command na pinoproseso, na nagbibigay-daan sa pagbabawas ng pagkonsumo ng enerhiya sa antas ng single-threaded na pagpoproseso kapag nagpapatupad ng mga program na hindi sumasakop sa buong bandwidth ng command stream.
- Kasama sa Direct3D 10 ang suporta para sa mga karagdagang epekto.
- Gumawa ng mga pag-optimize ng pagganap sa WineD3D code at backend gamit ang Vulkan graphics API.
- Sinusuri na ngayon ng Vulkan API-based rendering code kung anong mga kakayahan ang sinusuportahan ng device at sinasabi sa application kung anong antas ng Direct3D functionality ang available.
- Naipatupad na ang D3DXFillTextureTX at D3DXFillCubeTextureTX function.
- Ang klasikong OpenGL ARB shader backend ay nagdagdag ng suporta para sa pagtukoy ng mga anino gamit ang extension ng ARB_fragment_program_shadow.
- Ang D3DXLoadMeshHierarchyFromX at mga katulad na function ay nagdagdag ng suporta para sa paglo-load ng data ng user gamit ang ID3DXLoadUserData interface.
- Tunog at video
- Ang isang paunang pagpapatupad ng DirectMusic API ay iminungkahi. Nagdagdag ng suporta para sa mga koleksyon, instrumento at mga sample ng tunog sa format na SoundFont. Nagdagdag ng suporta para sa Doppler effect. Ang mga pagsubok ay ipinatupad upang i-verify ang tamang pagpapatupad kapag pinapatakbo ang dmime sequencer at ang dmsynth MIDI synthesizer.
- Ang FluidSynth library ay binuo sa DirectMusic API para magamit.
- Nagpatupad ng suporta para sa paglo-load ng mga sound font (SoundFont - mga format para sa sample-based synthesis na ginagamit upang magpatugtog ng mga MIDI file) sa mga format na DLS1 at DLS2, pati na rin sa format na SF2 na ginamit sa Linux.
- Nagdagdag ng kakayahang mag-play ng MIDI content gamit ang dmsynth library, gamit ang FluidSynth software synthesizer at ang DirectSound API para sa audio output.
- Nagdagdag ng decoder para sa video sa format na video codec ng Indeo IV50.
- Directshow
- Ang bahaging DMO (DirectX Media Object) na may WMV format decoder ay naipatupad na (Windows (Midya, Bidyo).
- Nagdagdag ng audio capture filter (DirectShow Audio Capture Filter).
- Bilang karagdagan sa mga audio stream, sinusuportahan na ngayon ng MPEG‑1 Stream Splitter (DirectShow MPEG‑1 Stream Splitter) ang mga video stream at service stream.
- Ang isang filter para sa pag-decode ng video sa MPEG‑1 na format (DirectShow MPEG‑1 Video Decoder) ay ipinatupad.
- Mga aparatong input
- Sinusuportahan ng DirectInput ang action mapping, na nagbibigay-daan sa iyong itali ang mga button sa isang controller ng laro sa mga partikular na aksyon sa mga laro.
- Pagsasama ng desktop
- Na-export na ang mga binding sa pangunahing environment ng user, na nagpapahintulot sa mga application na tumatakbo sa ilalim ng Wine na matawag na mga protocol handler kapag nagbubukas ng URL (halimbawa, naglulunsad ng spotify.exe kapag nagbubukas ng mga link tulad ng “spotify:user:spotify:playlist:848218482355482821”).
- Ipinatupad ang pagkuha ng data ng EDID (Extended Display Identification Data) na may impormasyon tungkol sa mga parameter ng nakakonektang monitor, gaya ng pangalan at modelo ng device.
- Posibleng isara ang isang desktop window na naka-deploy sa full screen mode gamit ang button na "Lumabas sa desktop" sa menu na "Start".
- Нтернационализация
- Pinalawak ang suporta para sa mga IME (Input Method Editor). Isinagawa ang mga gawain upang matiyak ang pagiging tugma sa mga katutubong bersyon. Windows Mga implementasyon ng IME at pinahusay na integrasyon sa Linux EMI
- Ang pagbuo ng mga lokal na database sa locale.nls na format mula sa Unicode CLDR (Unicode Common Locale Data Repository) na bersyon 44 na database ay ibinigay na Suporta para sa mga karagdagang lokal na bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA. , naidagdag ang prg-PL , skr-PK, tyv-RU, vmw-MZ, xnr-IN at za-CN.
- Ang interface ay isinalin sa Georgian. Ibinibigay ang buong pagsasalin para sa 16 na wika, at bahagyang pagsasalin para sa 31 wika.
- Ang mga talahanayan ng Unicode na character ay na-update sa karaniwang bersyon 15.1.0. Ang database ng time zone ay na-update.
- Kernel (mga interface ng kernel) Windows)
- Gaya ng inilabas na bersyon Windows tinukoy bilang default Windows 10.
- Para sa mga executable na file sa PE format, ang suporta para sa address space randomization (ASLR) ay ipinatupad, ngunit ang mga address para sa paglo-load ng code sa memorya ay hindi pa ganap na randomized.
- Naipatupad na ang suporta para sa mahinang pira-pirasong heap (LFH, Low Fragmentation Heap), na nagpapataas sa pagganap ng mga operasyon ng paglalaan ng memorya.
- Ang suporta para sa memory reservation (placeholder) ay idinagdag sa virtual memory allocation mechanism, na nagpapahintulot sa isang application na magreserba ng isang partikular na lugar ng virtual memory para sa hinaharap na paggamit.
- Ang mga 64-bit na loader (loader at preloader) ng mga executable na file at library ay pinagsama-sama sa format na PIE (Position-Independent Executables) upang palayain ang bahagi ng 32-bit address space.
- Ang tamang stack unwinding ay ibinibigay para sa NT system call at user callback na tawag.
- Mga tampok sa network
- Sinusuportahan ng MSHTML engine ang mekanismo ng pangongolekta ng basura ng "Cycle Collection".
- Nagdagdag ang MSHTML ng suporta para sa sabay-sabay na pagproseso ng mga kahilingan sa XMLHttpRequest.
- Ang jscript.dll ay nagdaragdag ng suporta para sa isang bagay na WeakMap upang gumana sa isang koleksyon ng mga pares ng susi/halaga kung saan ang susi ay isang bagay na maaaring may arbitraryong halaga na nakalakip dito. Ipinatupad ang WeakMap.get(), WeakMap.delete(), WeakMap.clear() at WeakMap.has() na mga pamamaraan.
- Ang Gecko browser engine ay na-update sa bersyon 2.47.4.
- Naipatupad na ang suporta para sa mga abiso tungkol sa mga pagbabago sa estado ng interface ng network.
- Cryptography at Seguridad
- Ang suporta para sa mga smart card ay idinagdag sa Winscard.dll library, na ipinatupad sa pamamagitan ng PCSClite system library.
- Nagdagdag ang BCrypt ng suporta para sa Diffie-Hellman key exchange protocol.
- Naipatupad ang Negotiate package, na nagbibigay ng layer para sa paggamit ng interface ng SSPI (Security Support Provider Interface) upang ma-access ang mga provider ng SSP (Security Support Provider).
- Mga Naka-embed na Application
- Ginagamit ng Wine Debugger (winedbg) ang Zydis library para i-disassemble ang mga tagubilin sa makina ng X86.
- Na-update ang interface ng WineCfg upang suportahan ang mga mas lumang bersyon sa mga 64-bit na platform. Windows (bago ang XP), na nagbibigay-daan sa iyong magpatakbo ng mga legacy application gamit ang WoW64 mode.
- Ang lahat ng mga built-in na graphical na application ay nagpapakita na ngayon ng impormasyon ng error sa isang hiwalay na dialog, sa halip na ipakita ang mga ito sa console.
- Ang programang systeminfo ay nagbibigay ng pagpapakita ng impormasyon mula sa database ng WMI (Windows Instrumentasyon ng Pamamahala).
- Nagdagdag ng klist application para magpakita ng mga tiket sa Kerberos.
- Ang application ng taskkill ay nagpapatupad ng kakayahang puwersahang wakasan ang mga proseso ng bata.
- Idinagdag ang opsyong "/machine" sa start utility upang piliin ang arkitektura na ginagamit kapag nagpapatakbo ng mga hybrid na executable na sumusuporta sa x86 at ARM.
- Karamihan sa mga functionality ng tasklist program ay naipatupad na.
- Nagdagdag ng pangunahing pagpapatupad ng findstr application.
- Mga Tool sa Pag-unlad
- Ang WineDump utility ay may kakayahang ipakita ang mga nilalaman ng mga registry file. Windows (REGF format), pati na rin ang pagpapakita ng datos para sa lahat ng arkitektura (x86/ARM64) na sinusuportahan sa mga hybrid PE file.
- Ang IDL compiler ay nagdagdag ng suporta para sa "composable", "default_overload", "deprecated" at "protected" attributes.
- Inalis ang libwine.so, na hindi na ginagamit sa Wine 6.0 at matagal nang hindi na ginagamit sa Wine. Ang mga program sa format na ELF na binuo sa mga mas lumang bersyon ng Wine (5.0 at mas luma) na may libwine.so ay nangangailangan ng muling pagtatayo upang tumakbo sa Wine 9.0.
- Mga built-in na aklatan at mga panlabas na dependency
- Ang mga aklatan na FluidSynth 2.3.3, Musl 1.2.3 (mathematics functions lang) at Zydis 4.0.0 ay isinama sa package.
- Mga Bahagi 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, Lib1.1.38.libXslt at 1.3 na bagong bersyon. Ang Wine Mono engine na may pagpapatupad ng .NET platform ay na-update upang ilabas ang 8.1.0.
- Ginagamit ng driver na winewayland.drv ang Wayland client library bilang mga external na dependency, gayundin ang xkbcommon at xkbregistry library.
- Para suportahan ang mga smart card, ginagamit ang panlabas na library ng PCSClite (sa macOS — PCSC).
- Ang pagbuo ng mga PE file sa mga non-i386 na platform ay nangangailangan na ngayon ng cross-compiler na may suporta para sa ".seh" na mga direktiba upang mahawakan ang mga exception.
Pinagmulan: opennet.ru
