Efter ett Ärs utveckling och 29 experimentella versioner har den stabila releasen av den öppna implementationen av Win32 API - Wine 10.0, presenterats, som inkluderar mer Àn 6000 förÀndringar. Bland de viktigaste framstegen i den nya versionen mÀrks fullstÀndig support för ARM64EC-arkitekturen, skalning pÄ skÀrmar med hög pixeltÀthet, en standard Wayland-drivrutin, implementering av paneler för skÀrm- och joystickinstÀllningar, en alternativ multimediabackend baserad pÄ FFmpeg, Bluetooth-drivrutin, stöd för Vulkan 1.4 och möjlighet att emulera byten av videolÀgen.
I Wine bekrÀftas det att 5372 Windows-program fungerar felfritt (för ett Är sedan 5336, för tvÄ Är sedan 5266, för tre Är sedan 5156), ytterligare 4435 program (för ett Är sedan 4397, för tvÄ Är sedan 4370, för tre Är sedan 4312) fungerar utmÀrkt med ytterligare instÀllningar och externa DLL-filer. För 4020 program (för ett Är sedan 3943, för tvÄ Är sedan 3888, för tre Är sedan 3813) finns det vissa mindre problem, men de hindrar inte anvÀndningen av de grundlÀggande funktionerna i applikationerna.
Nyckelinnovationer i Wine 10.0:
- ARM64
- FullstÀndig stöd för ARM64EC-arkitekturen (ARM64 Emulation Compatible) har sÀkerstÀllts, med vilken stödgraden i Wine har nÄtt paritet med ARM64-arkitekturen. ARM64EC-arkitekturen har utvecklats för att förenkla porteringen av applikationer som ursprungligen skrivits för x86_64-system till ARM64-system och möjliggör körning av separata moduler med x86_64-kod i ett ARM64-miljö med hjÀlp av en emulator.
- FullstĂ€ndig stöd för PE-filer i formatet ARM64X har implementerats, vilket tillĂ„ter att kombinera kod för bĂ„de ARM64EC och ARM64-arkitekturer i en och samma körbara fil. För att bygga Wine i ARM64X-formatet mĂ„ste LLVM installeras frĂ„n Git (den nödvĂ€ndiga funktionen kommer att ingĂ„ i LLVM 20-versionen) och vid körning av skriptet 'configure' anges alternativet 'âenable-archs=arm64ec,aarch64'.
- Ett grÀnssnitt för emulering av 64-bitars system x86 har implementerats. Vid anvÀndning av ARM64EC utförs Wine som det Àr, och emuleringen tillÀmpas endast för koden för x86-64-applikationer. Emuleringsbiblioteket har Ànnu inte inkluderats i huvudsammansÀttningen av Wine, men för att köra x86-64-kod i ARM64-miljö kan en extern emulator FEX anvÀndas, som har byggts med stöd för ARM64EC.
- För att stödja ARM64 krÀvs att systemet har minnessidor pÄ 4 KB, vilket krÀvs av ABI Windows (körning i miljöer med Linux-kÀrnor som anvÀnder minnessidor pÄ 16K eller 64K stöds Ànnu inte).
- Grafiksubsystem
- Mer exakt skalning har implementerats pÄ skÀrmar med hög pixeltÀthet (High-DPI). Stöd för DPI Awareness-lÀget har sÀkerstÀllts för att organisera presentationen av applikationer pÄ skÀrmar med hög pixeltÀthet, beroende pÄ om applikationen stödjer anpassning till förÀndringar i DPI eller inte (applikationer som inte tar hÀnsyn till DPI skalas automatiskt). Alternativ har lagts till för att ÄsidosÀtta stödet för High-DPI i förhÄllande till specifika applikationer eller Wine-prefix.
- Stöd för Vulkan-specifikationen 1.4 har lagts till i drivrutinen för grafik-API:et Vulkan (i Wine 9.0 stödde man Vulkan 1.3.272). Stöd för Vulkan-tillÀgg för kodning och avkodning av video har lagts till.
- Vid anvÀndning av X11-backend har möjligheten att rendera Vulkan-barnfönster för applikationer som anvÀnder sÄdana fönster för att visa 3D-innehÄll implementerats (tidigare var denna möjlighet endast tillgÀnglig för OpenGL).
- Stöd för mekanismen för teckensnittslÀnkning har lagts till i biblioteket GdiPlus, vilket gör det möjligt att anvÀnda flera teckensnitt vid visning av text om inget av teckensnitten ensam tÀcker alla förekommande tecken i texten.
- Wayland
- I standardkonfigurationen har drivrutinen winewayland.drv aktiverats, vilket möjliggör att anvÀnda Wine i miljöer baserade pÄ Wayland-protokollet utan att anvÀnda XWayland och komponenter frÄn X11. Wine kör applikationer som standard direkt pÄ Wayland endast om XWayland inte Àr tillgÀngligt; annars förblir körningen med hjÀlp av XWayland prioriterad. För att tvÄngsaktivera Wayland kan miljövariabeln DISPLAY anvÀndas, eller sÄ kan en nyckel lÀggas till i registret genom att skapa en fil file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" och anvÀnda följande kommando: $ WINEPREFIX=\/sökvÀg\/till\/prefix wine regedit \/sökvÀg\/till\/file.reg
- Stöd för OpenGL och pixelbuffrar (pBuffer) har lagts till i drivrutinen winewayland.drv.
- Problem med positioneringen av popup-fönster i Wayland-baserade miljöer har ÄtgÀrdats.
- Vid anvÀndning av Wayland har stöd för automatisk upprepning av tangenttryckningar vid hÄllning av tangenter realiserats.
- Integration med skrivbordet
- En experimentell mekanism för "modesetting"-emulering har lagts till, vilket gör det möjligt att emulera vÀxling av videolÀgen utan att faktiskt Àndra skÀrminstÀllningarna. Synligheten av skÀrmens upplösning utan att vÀxla videolÀge skapas genom en förlÀngning och skalning av fönster.
- En ny applet för Desktop Control Panel (desk.cpl) har lagts till med ett grÀnssnitt för att hantera skÀrminstÀllningar (till exempel kan man Àndra den virtuella skrivbordsupplösningen eller stÀlla in emulerade skÀrmparametrar).
- Möjligheten att ÄterstÀlla skÀrminstÀllningarna till standardvÀrdena har lagts till i fall av en oförmÄga att ÄterstÀlla tillstÄndet efter ett kraschat program.
- Stöd för att stÀnga av visningen av ikoner i systemfÀltet har lagts till (i "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" bör "NoTrayItemsDisplay=1" anges).
- Stöd för att stÀnga av skal (Shell launcher) i skrivbordslÀge har lagts till (i "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" bör "NoDesktop=1" anges).
- Direct3D
- För rendering med OpenGL krÀvs numera stöd för GLSL 1.20 samt för tillÀggen EXT_framebuffer_object och ARB_texture_non_power_of_two. Stöd för den gamla backend som heter ARB shader och instÀllningar för OffscreenRenderingMode har upphört.
- För Direct3D 9 och Àldre versioner har en grafisk pipeline med fasta funktioner lagts till (i Àldre Direct3D erbjöds endast fördefinierade grafiska operationer som inte kunde Àndras), implementerad med hjÀlp av sprÄk för shader HLSL och som gör det möjligt att emulera fasta funktioner vid rendering genom API Vulkan eller OpenGL.
- Vid rendering med Vulkan har Vulkan-tillÀgg anvÀnts för att dynamiskt Àndra tillstÄndet i den grafiska pipelinen, vilket gör att spelens förseningar kan minskas.
- En alternativ backend glsl-vkd3d för GLSL-shaders har lagts till, som anvÀnder vkd3d-shader.
- Inledande stöd för kompilering av Direct3D-effekter har tillhandahÄllits med anvÀndning av vkd3d-shader.
- I D3DX9-biblioteket har möjligheten att generera MIP-texturer (MipMap) vid inlÀsning av volumetriska texturer implementerats. Stöd för fÀrgvisningsformat 64bpp RGBA och 48bpp RGB i PNG-bilder har lagts till, samt formaten X8L8V8U8, A2W10V10U10, A8P8, V16U16 och Q16W16V16U16.
- Ljud och video
- En ny multimedia-backend baserad pÄ anvÀndning av FFmpeg, och som Àr anvÀndbar för att sÀkerstÀlla driften av Media Foundation-ramverket, har implementerats som ett alternativ till backend baserad pÄ GStreamer. För att aktivera den alternativa backend i registeravsnittet "HKCU\Software\Wine\MediaFoundation" bör "DisableGstByteStreamHandler=1" anges.
- Implementeringen av API Media Foundation har förbÀttrats och passar nu bÀttre med program som Àr beroende av demuxing- och dekoderkomponenter.
- I API DirectMusic har stöd för uppladdning av MIDI-filer lagts till.
- Inmatningsenheter
- En tidig version av Bluetooth-drivrutinen har lagts till.
- Applet Joystick Control Panel (joy.cpl) har lagts till med implementering av instÀllningar för joystick.
- FörbÀttringar gÀllande pekdon (touchpads, möss) som anvÀnder HID-protokollet (Human Interface Device) har genomförts. Drivrutinen mouhid.sys för HID-enheter har lagts till. Korrekt analys av sammansatta inmatningsenheter har implementerats och information om dem överförs till Windows-applikationer som separata enheter.
- Stöd för pekskÀrmar har lagts till i backend X11, och möjligheten att anvÀnda flervalslÀge genom bearbetning av WM_POINTER*-meddelanden (WM_POINTERENTER, WM_POINTERLEAVE osv.) har implementerats.
- Vissa interna strukturer i biblioteket user32 har placerats i delat minne, vilket har förbÀttrat prestanda och minskat belastningen pÄ Wine Server.
- I winex11 har stöd för bearbetning av XInput2-hÀndelser i relation till individuella fönster lagts till.
- Korrekt stöd för tangentbord med Dvorak-layout har implementerats.
- KÀrnan (Windows kernelgrÀnssnitt)
- Stöd för att höja processers privilegier har lagts till (en process som ursprungligen körs under en vanlig anvÀndare kan ges administratörsprivilegier). Vid skapandet av serverprocesser (msi action server) samt processer som anropar funktionerna RtlCreateUserProcess() och CreateProcessInternal() anvÀnds som standard en begrÀnsad administratörstoken.
- Vid hÀmtning av information om disketiketter anvÀnds nu, om möjligt, Ätkomst till systemtjÀnster via DBus istÀllet för att försöka fÄ direkt Ätkomst till enheten.
- En enkelriktad mekanism för interprocesskommunikation (IPC) Mailslots har nu genomförts direkt i Wine-servern, vilket möjliggör full stöd för Windows-semantik.
- Stöd för att vÀnta pÄ hÀndelser frÄn seriella portar i asynkront lÀge har implementerats.
- Fullt stöd för processorarkitektursextensioner XSTATE i trÄdarnas kontexter har lagts till, vilket möjliggör anvÀndning av nya vektorarkitektursextensioner som AVX-512.
- Inbyggda applikationer
- Inmatningshanteraren som anvĂ€nds i kommandotolkaren cmd.exe har skrivits om. Stöd för operationerna â||â och â&&â har lagts till i cmd.exe.
- I verktyget findstr har stöd för reguljÀra uttryck och sökning utan att ta hÀnsyn till stora/smÄ bokstÀver lagts till.
- I verktygen regsvr32 och rundll32 har möjligheten att registrera ARM64EC-moduler lagts till.
- Verktyg har lagts till: sort för att sortera ingÄngdata, fc för att jÀmföra filer och where för att söka efter filer.
- I applikationen wmic har en interaktiv arbetslÀget implementerats.
- I Explorer har valfritt stöd för startmenyn och verktygsfÀltet lagts till. Explorer.exe körs med begrÀnsade behörigheter.
- Utvecklingsverktyg
- I winebuild har alternativet «-marm64x» lagts till för att generera hybrida ARM64X-bibliotek.
- I winegcc har alternativet «-marm64x» lagts till, vilket gör att kompilering för ARM64X stöds.
- I filer som genereras med hjÀlp av grÀnssnittssprÄket IDL (Interface Definition Language) anvÀnds komponenter som helt stöder exekvering i tolkningslÀge.
- I kompilatorn för grÀnssnittsbeskrivningssprÄket IDL (Interface Definition Language) har stöd för att generera typbibliotek (TypeLib) i det gamla formatet (SLTG) lagts till.
- I verktyget winedump har stöd för att spara minidump-tabeller, C++ undantagsinformation och typbibliotekresurser lagts till.
- Olika
- Stödet för Diffie-Hellman nyckelutbytesprotokollet (DH) har förbÀttrats. Möjligheten att konfigurera och erhÄlla DH-parametrar har lagts till. Hanterare för att skapa par av offentliga och privata nycklar har implementerats.
- AnvÀndning av tillÀggsfyllning OAEP (Optimal Asymmetric Encryption Padding) tillsammans med RSA-algoritmen har sÀkerstÀllts.
- I API:et DirectPlay har stöd för nÀtverkssessioner implementerats.
- Bearbetning av tillstÄnd för asynkron in- och utdata har förbÀttrats nÀr man arbetar i WoW64-lÀge (64-bitars Windows-on-Windows), vilket gör att 32-bitars Windows-program kan köras i 64-bitars Unix-system.
- Stöd för att ladda ODBC-drivrutiner till databashanterare som har byggts för Windows har lagts till.
- För ARM-plattformen har fullstÀndigt stöd för RPC/COM, C++ RTTI (Run-Time Type Information) och C++ undantag implementerats.
- I C runtime har stöd för UTF-8-kodning i ANSI-funktioner implementerats.
- Möjligheterna i MSHTML-motorn har utvidgats. Stöd för prototyper och objektkonstruktörer har lagts till. En ny bindningsgrÀnssnitt för MSHTML har lagts till i JavaScript-motorn. Inbyggda MSHTML-funktioner har omvandlats till korrekta JavaScript-objekt. SkrÀpsamlaren för JavaScript har förbÀttrats och tÀcker nu alla körningskontexter för skriptet i en trÄd. Stöd för JavaScript-objekt ArrayBuffer och DataView har lagts till.
- I den kontinuerliga integrationssystemet baserat pÄ GitLab har stöd för statisk analys med Clang och rapporter om JUnit-testresultat lagts till.
- Biblioteket Capstone 5.0.3 har inkluderats, via vilket avkodning i debuggern WineDb har implementerats.
- Komponenterna har uppdaterats till nya versioner: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 och Zlib 1.3.1.
KĂ€lla: opennet.ru
