Efter ett Är av utveckling och 26 experimentella versioner presenterades en stabil version av den öppna implementeringen av Win32 API - Wine 9.0, som innehöll mer Àn 7000 64 Àndringar. Nyckelprestationerna i den nya versionen inkluderar implementeringen av WoW32-arkitekturen för att köra 64-bitarsprogram i en 64-bitars miljö, drivrutintegration för att stödja Wayland, stöd för ARMXNUMX-arkitekturen, implementering av DirectMusic API och stöd för smartkort.
5336 (5266 för ett Är sedan, 5156 för tvÄ Är sedan, 5049 för tre Är sedan) program har bekrÀftats fungera korrekt i Wine. WindowsYtterligare 4 397 program (4 370 för ett Är sedan, 4 312 för tvÄ Är sedan, 4 227 för tre Är sedan) fungerar bra med ytterligare instÀllningar och externa DLL-filer. 3 943 program (3 888 för ett Är sedan, 3 813 för tvÄ Är sedan, 3 703 för tre Är sedan) har mindre problem som inte stör programmens grundlÀggande funktionalitet.
Viktiga innovationer i Wine 9.0:
- Drivrutinen winewayland.drv har lagts till, vilket gör att Wine kan anvÀndas i Wayland-baserade miljöer utan anvÀndning av XWayland- eller X11-komponenter. Denna utveckling syftar till att tillhandahÄlla en ren Wayland-miljö med startstöd. Windows- applikationer som inte krÀver installation av X11-relaterade paket, vilket möjliggör högre prestanda och respons i spel genom att eliminera onödiga lager. Att anvÀnda en ren Wayland-miljö för Wine eliminerar ocksÄ sÀkerhetsproblem som Àr inneboende i X11 (till exempel kan otillförlitliga X11-spel spionera pÄ andra applikationer eftersom X11-protokollet tillÄter Ätkomst till alla inmatningshÀndelser och utför tangenttryckningsersÀttning).
Drivrutinen Àr markerad som experimentell och under utveckling, men trots det har den redan stöd för mÄnga funktioner, sÄsom fönsterhantering, arbete med flera bildskÀrmar, stöd för skalning av utdata pÄ skÀrmar med hög DPI, arbete med relativa koordinater vid spÄrning av musrörelser och stöd för Vulkans grafik-API. Som standard Àr drivrutinen inte aktiv och för att aktivera den bör du lÀgga till "wayland" till registerparametern "HKCU\Software\Wine\Drivers" och se till att miljövariabeln DISPLAY inte Àr instÀlld: wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland
- Alla moduler har konverterats till NT-systemanropsgrÀnssnittet, istÀllet för att göra direktanrop mellan PE- och Unix-lagren, vilket markerar slutförandet av mÄnga Ärs arbete med att konvertera alla DLL-bibliotek till att anvÀnda PE (Portable Executable) körbara filformat.
- Utvecklingen av WoW64-lagret (64-bitars) fortsatte Windows-pÄ-Windows), vilket gör att du kan köra 32-bitars Windows- applikationer pÄ 64-bitars Unix-system. Alla moduler som anvÀnder Unix-bibliotek anvÀnder WoW64-systemanropsöversÀttare (thunks), vilket gör att 32-bitarsmoduler i PE-format kan anvÀnda 64-bitars Unix-bibliotek.
Det nya WoW64-startlÀget har förbÀttrats, vilket gör att 32-bitarskod kan köras i en 64-bitars process (i det gamla WoW64-lÀget kördes 32-bitarsapplikationer i 32-bitars Unix-processer). Stöd för att anvÀnda det nya WoW64-lÀget pÄ plattformen har lagts till. macOSEftersom det nya WoW64-lÀget har nÄgra mindre buggar, sÄsom brist pÄ 16-bitarsstöd och minskad OpenGL-prestanda pÄ grund av bristande stöd för ARB_buffer_storage-tillÀgget, Àr det Ànnu inte aktiverat som standard och krÀver att man bygger med alternativet "--enable-archs=i386,x86_64" i konfigurationsskriptet.
- Lade till möjligheten att köra befintliga körbara filer Windows PÄ system med ARM64-arkitekturen kan Wine nu byggas för ARM64EC (ARM64 Emulation Compatible) ABI, och ARM64EC-moduler kan lÀsas in. Dessa moduler anvÀnds för att förenkla porteringen av applikationer som ursprungligen skrevs för x86_64-arkitekturen till ARM64-system genom att möjliggöra exekvering av enskilda x86_64-kodmoduler i ARM64-miljön med hjÀlp av en emulator. Stöd har lagts till för ARM64X PE-filformatet, vilket gör att en enda körbar fil kan lÀsas in i bÄde x64/Arm64EC- och ARM64-processer. Ett grÀnssnitt för att emulera 32-bitars x86-system har implementerats, men emulatorbiblioteket ingÄr Ànnu inte i Wine-huvuddistributionen (den externa FEX-emulatorn kan anvÀndas för att köra x86-kod i ARM64-miljön).
- Grafiskt delsystem
- PostScript-drivrutinen har omdesignats för att stödja spoolfiler i formatet Windows, som lagrar data om utskriftsjobb. Direkta anrop till drivrutinen frÄn Unix-miljön Àr undantagna.
- Stöd för mörkt lÀge har lagts till WinRT-teman. En instÀllning har lagts till i WineCfg för att möjliggöra mörk grÀnssnittsdesign.
- Drivrutinen för Vulkans grafik-API har lagt till stöd för Vulkan 1.3.272-specifikationen (8.0 stöddes i Wine 1.3.237).
- Funktionerna i GdiPlus-biblioteket har optimerats, vilket möjliggör ökad grafikprestanda.
- Direct3D
- Parsning av en flertrÄdad kommandoström avbryts nÀr inga renderingskommandon bearbetas, vilket gör det möjligt att reducera energiförbrukningen till nivÄn för enkeltrÄdad bearbetning vid exekvering av program som inte upptar hela kommandoströmmens bandbredd.
- Direct3D 10 innehÄller stöd för ytterligare effekter.
- Gjorde prestandaoptimeringar av WineD3D-koden och backend med Vulkans grafik-API.
- Den Vulkan API-baserade renderingskoden kontrollerar nu vilka funktioner enheten stöder och talar om för applikationen vilken nivÄ av Direct3D-funktionalitet som Àr tillgÀnglig.
- Funktionerna D3DXFillTextureTX och D3DXFillCubeTextureTX har implementerats.
- Den klassiska OpenGL ARB shader-backend har lagt till stöd för att definiera skuggor med tillÀgget ARB_fragment_program_shadow.
- D3DXLoadMeshHierarchyFromX och liknande funktioner har lagt till stöd för att ladda anvÀndardata med ID3DXLoadUserData-grÀnssnittet.
- Ljud och video
- En första implementering av DirectMusic API har föreslagits. Lagt till stöd för samlingar, instrument och ljudprover i SoundFont-formatet. Lade till stöd för Doppler-effekten. Tester har implementerats för att verifiera korrekt implementering nÀr du anvÀnder dmime-sequencern och dmsynth MIDI-synthesizern.
- FluidSynth-biblioteket Àr inbyggt i DirectMusic API för anvÀndning.
- Implementerade stöd för att ladda ljudfonter (SoundFont - format för samplingsbaserad syntes som anvÀnds för att spela MIDI-filer) i DLS1- och DLS2-formaten, samt i SF2-formatet som anvÀnds i Linux.
- Lade till möjligheten att spela MIDI-innehÄll med hjÀlp av dmsynth-biblioteket, med hjÀlp av FluidSynth mjukvarusynthesizer och DirectSound API för ljudutgÄng.
- Tillagd dekoder för video i Indeo IV50 videocodec-format.
- Direct
- DMO-komponenten (DirectX Media Object) med en WMV-formatavkodare har implementerats (Windows Mediavideo).
- Lade till ett ljudinfÄngningsfilter (DirectShow Audio Capture Filter).
- Förutom ljudströmmar stöder nu DirectShow MPEG-1 Stream Splitter video- och tjÀnstströmmar.
- Ett filter för avkodning av video i MPEGâ1-format (DirectShow MPEGâ1 Video Decoder) har implementerats.
- Ange enheter
- DirectInput stöder actionmapping, vilket gör att du kan binda knappar pÄ en spelkontroll till specifika ÄtgÀrder i spel.
- Desktopintegration
- Bindningar har exporterats till huvudanvÀndarmiljön, vilket gör att applikationer som körs under Wine kan anropas som protokollhanterare nÀr du öppnar en URL (till exempel startar spotify.exe nÀr du öppnar lÀnkar som "spotify:anvÀndare:spotify:spellista:848218482355482821").
- Implementerade extrahering av EDID (Extended Display Identification Data) data med information om parametrarna för den anslutna monitorn, sÄsom namn och modell pÄ enheten.
- Det Àr möjligt att stÀnga ett skrivbordsfönster som anvÀnds i helskÀrmslÀge med knappen "Avsluta skrivbordet" i "Start"-menyn.
- Internationalisering
- Stödet för IME:er (Input Method Editors) har utökats. Arbete har utförts för att sÀkerstÀlla kompatibilitet med inbyggda Windows IME-implementeringar och förbÀttrad integration med Linux IME
- Generering av sprÄkdatabaser i formatet locale.nls frÄn Unicode CLDR (Unicode Common Locale Data Repository) databas version 44 har tillhandahÄllits Stöd för ytterligare lokaler bew-ID, blo-BJ, csw-CA, dvs-EE, mic-CA. , prg-PL har lagts till , skr-PK, tyv-RU, vmw-MZ, xnr-IN och za-CN.
- GrÀnssnittet har översatts till georgiska. FullstÀndiga översÀttningar tillhandahÄlls för 16 sprÄk och partiella översÀttningar för 31 sprÄk.
- Unicode-teckentabeller har uppdaterats till standardversion 15.1.0. Tidszonsdatabasen har uppdaterats.
- KÀrna (kÀrngrÀnssnitt Windows)
- Som den utgivna versionen Windows definierad som standard Windows 10.
- För körbara filer i PE-formatet Àr stöd för adressrymdsrandomisering (ASLR) implementerat, men adresserna för att ladda kod i minnet Àr Ànnu inte helt randomiserade.
- Stöd för en svagt fragmenterad hög (LFH, Low Fragmentation Heap) har implementerats, vilket har ökat prestandan för minnesallokeringsoperationer.
- Stöd för minnesreservation (platshÄllare) har lagts till den virtuella minnesallokeringsmekanismen, vilket gör att en applikation kan reservera ett specifikt omrÄde av virtuellt minne för framtida anvÀndning.
- 64-bitars laddare (loader och preloader) av körbara filer och bibliotek kompileras i PIE-formatet (Position-Independent Executables) för att frigöra en del av 32-bitars adressutrymmet.
- Korrekt stackavveckning tillhandahÄlls nu för NT-systemsamtal och anvÀndarÄteruppringningar.
- NĂ€tverksfunktioner
- MSHTML-motorn stöder skrÀpinsamlingsmekanismen "Cycle Collection".
- MSHTML har lagt till stöd för synkron behandling av XMLHttpRequest-förfrÄgningar.
- jscript.dll lÀgger till stöd för ett WeakMap-objekt för att fungera med en samling nyckel/vÀrdepar dÀr nyckeln Àr ett objekt som kan ha ett godtyckligt vÀrde kopplat till sig. Implementerade metoderna WeakMap.get(), WeakMap.delete(), WeakMap.clear() och WeakMap.has().
- WebblÀsarmotorn Gecko har uppdaterats till version 2.47.4.
- Stöd för aviseringar om förÀndringar i nÀtverksgrÀnssnittets tillstÄnd har implementerats.
- Kryptografi och sÀkerhet
- Stöd för smartkort har lagts till Winscard.dll-biblioteket, implementerat genom PCSClite-systembiblioteket.
- BCrypt har lagt till stöd för nyckelutbytesprotokollet Diffie-Hellman.
- Negotiate-paketet har implementerats och tillhandahÄller ett lager för att anvÀnda SSPI (Security Support Provider Interface) för att komma Ät Security Support Providers (SSP:er).
- InbÀddade applikationer
- Wine Debugger (winedbg) anvÀnder Zydis-biblioteket för att ta isÀr X86-maskininstruktioner.
- WineCfg-grÀnssnittet har uppdaterats för att stödja Àldre versioner pÄ 64-bitarsplattformar. Windows (före XP), vilket lÄter dig köra Àldre program med WoW64-lÀge.
- Alla inbyggda grafiska applikationer visar nu felinformation i en separat dialog, istÀllet för att visa dem i konsolen.
- Programmet systeminfo visar information frÄn WMI-databasen (Windows ledningsinstrument).
- Lade till klist-applikation för att visa Kerberos-biljetter.
- Taskkill-applikationen implementerar förmÄgan att tvÄngsmÀssigt avsluta underordnade processer.
- Startverktyget har nu ett "/machine"-alternativ för att vÀlja arkitekturen som anvÀnds nÀr du kör hybridkörbara filer som stöder x86 och ARM.
- Det mesta av funktionaliteten i tasklistprogrammet har implementerats.
- Lade till en grundlÀggande implementering av findstr-applikationen.
- Utvecklings verktyg
- WineDump-verktyget har möjlighet att visa innehÄllet i registerfiler. Windows (REGF-format), samt visning av data för alla arkitekturer (x86/ARM64) som stöds i hybrid PE-filer.
- IDL-kompilatorn stöder nu attributen "composable", "default_overload", "deprecated" och "protected".
- Tog bort biblioteket libwine.so, som förÄldrades i Wine 6.0 och inte lÀngre anvÀnds i Wine. ELF-program byggda i Àldre Wine-versioner (5.0 och högre) med libwine.so krÀver ombyggnad för att köras i Wine 9.0.
- Inbyggda bibliotek och externa beroenden
- Biblioteken FluidSynth 2.3.3, Musl 1.2.3 (endast matematiska funktioner) och Zydis 4.0.0 Àr integrerade i paketet.
- Följande komponenter har uppdaterats till nya versioner: 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.5s, LibXml1.1.38 1.3lt och LibXml8.1.0 XNUMXs. XNUMX. Wine Mono-motor med .NET-plattformsimplementering har uppdaterats till release XNUMX.
- Drivrutinen winewayland.drv anvÀnder Wayland-klientbiblioteket som externa beroenden, sÄvÀl som xkbcommon- och xkbregistry-biblioteken.
- För att stödja smartkort anvĂ€nds det externa PCSClite-biblioteket (i macOS â PCSC).
- Att bygga PE-filer pÄ icke-i386-plattformar krÀver nu en korskompilator med stöd för ".seh"-direktiv för att hantera undantag.
KĂ€lla: opennet.ru
