Etter et år med utvikling og 29 eksperimentelle versjoner, ble en stabil utgivelse av den åpne implementeringen av Win32 API - Wine 10.0, som inneholdt mer enn 6000 endringer, presentert. Nøkkelprestasjoner i den nye versjonen inkluderer full støtte for ARM64EC-arkitekturen, skalering på skjermer med høy pikseltetthet, inkludering av Wayland-driveren som standard, implementering av paneler for oppsett av skjermen og joysticken, en alternativ multimedia-backend basert på FFmpeg, Bluetooth driver, Vulkan 1.4-støtte, emuleringsevne bytte videomodus.
5372 programmer har blitt bekreftet å fungere skikkelig i Wine Windows (5336 for et år siden, 5266 for to år siden, 5156 for tre år siden), ytterligere 4435 programmer (4397 for et år siden, 4370 for to år siden, 4312 for tre år siden) fungerer fint med tilleggsinnstillinger og eksterne DLL-er. 4020 programmer (3943 for et år siden, 3888 for to år siden, 3813 for tre år siden) har mindre problemer som ikke forstyrrer den grunnleggende funksjonaliteten til applikasjonene.
Viktige innovasjoner i Wine 10.0:
- ARM64
- Full støtte er gitt for ARM64EC (ARM64 Emulation Compatible)-arkitekturen, hvor støttenivået i Wine har nådd paritet med ARM64-arkitekturen. ARM64EC-arkitekturen er designet for å forenkle porteringen av applikasjoner som opprinnelig ble skrevet for x64_86-systemer til ARM64-systemer, og lar individuelle x64_86-kodemoduler kjøres i ARM64-miljøet ved hjelp av en emulator.
- Full støtte er implementert for ARM64X PE-filformatet, som lar deg kombinere kode for ARM64EC- og ARM64-arkitekturene i én kjørbar fil. For å bygge Wine i ARM64X-formatet, må du installere LLVM fra Git (den nødvendige funksjonaliteten vil bli inkludert i LLVM 20-utgivelsen) og når du kjører "configure"-skriptet, spesifiser alternativet "-enable-archs=arm64ec,aarch64" .
- Et grensesnitt for emulering av 64-bit x86-systemer er implementert. Når du bruker ARM64EC, kjører Wine selv som den er, og emulering brukes kun på x86-64-applikasjonskoden. Biblioteket med emulatoren er ennå ikke inkludert i hovedvinpakken, men for å kjøre x86-64-kode i ARM64-miljøet kan du bruke den eksterne FEX-emulatoren bygget med ARM64EC-støtte.
- ARM64-støtte krever at systemet bruker 4KB minnesider som kreves av ABI. Windows (kjører i miljøer med kjerner Linux, bruk av 16K eller 64K minnesider støttes ikke ennå).
- Grafisk delsystem
- Implementert mer nøyaktig skalering på skjermer med høy pikseltetthet (High-DPI). Støtte for DPI Awareness-modus er gitt for å organisere visningen av applikasjoner på skjermer med høy pikseltetthet, med tanke på om applikasjonen støtter tilpasning til DPI-endringer eller ikke (applikasjoner som ikke tar hensyn til DPI skaleres automatisk). Lagt til alternativer for å overstyre High-DPI-støtte for individuelle applikasjoner eller vinprefikser.
- Støtte for Vulkan 1.4-spesifikasjonen er lagt til driveren for Vulkan graphics API (Vulkan 9.0 ble støttet i Wine 1.3.272). Lagt til støtte for Vulkan-utvidelser for videokoding og dekoding.
- Når du bruker X11-backend, har muligheten til å gjengi Vulkan underordnede vinduer for applikasjoner som bruker slike vinduer for å vise 3D-innhold blitt implementert (tidligere var en slik funksjon kun tilgjengelig for OpenGL).
- Støtte for fontkoblingsmekanismen er lagt til GdiPlus-biblioteket, som lar deg bruke flere fonter når du viser tekst hvis det ikke er fonter som separat dekker alle tegnene som finnes i teksten.
- Wayland
- Standardkonfigurasjonen inkluderer driveren winewayland.drv, som lar Wine kjøre i Wayland-baserte miljøer uten å bruke XWayland- eller X11-komponenter. Wine starter standardprogrammer direkte på Wayland bare hvis XWayland ikke er tilgjengelig; ellers er XWayland den foretrukne starteren. For å tvinge Wayland til å kjøre, kan du bruke miljøvariabelen DISPLAY eller legge til en registernøkkel ved å opprette en file.reg-fil: Windows Registerredigering versjon 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics" = "wayland" og bruk den med kommandoen: $ WINEPREFIX = /path/to/prefix wine regedit /path/to/file.reg
- Lagt til støtte for OpenGL og pikselbuffere (pBuffer) til winewayland.drv-driveren.
- Løste problemer med popup-plassering i Wayland-baserte miljøer.
- Når du bruker Wayland, er støtte for auto-repetisjon når du trykker på tastene implementert.
- Desktop-integrasjon
- Lagt til en eksperimentell "modesetting"-emuleringsmekanisme som lar deg emulere bytte av videomodus uten å faktisk endre skjerminnstillingene. Synligheten av å endre skjermoppløsning uten å bytte videomodus skapes ved å utvide og skalere vinduer.
- En ny skrivebordskontrollpanel-applet (desk.cpl) er lagt til med implementering av et grensesnitt for administrasjon av skjerminnstillinger (du kan for eksempel endre den virtuelle oppløsningen til skrivebordet eller konfigurere emulerte skjermparametere).
- Lagt til muligheten til å tilbakestille skjerminnstillinger til standardverdier hvis det er umulig å gjenopprette tilstanden etter en prosesskrasj.
- La til støtte for å deaktivere visning av ikoner i systemstatusfeltet (i "HKLM\Software\Microsoft\Windows`\CurrentVersion\Policies\Explorer` skal spesifisere `NoTrayItemsDisplay=1`.
- La til støtte for deaktivering av skall (Shell launcher) i skrivebordsmodus (i "HKLM\Software\Microsoft\"Windows`\CurrentVersion\Policies\Explorer` skal spesifisere `NoDesktop=1`.
- Direct3D
- Gjengivelse med OpenGL krever nå støtte for GLSL 1.20, samt utvidelsene EXT_framebuffer_object og ARB_texture_non_power_of_two. Støtte for den gamle ARB shader-backend og OffscreenRenderingMode-innstillingen er avviklet.
- For Direct3D 9 og eldre er det lagt til en grafisk pipeline med fast funksjon (gamle Direct3D ga kun forhåndsdefinerte grafikkoperasjoner som ikke kunne endres), implementert ved bruk av HLSL shader-språket og tillater emulering av faste funksjoner ved gjengivelse gjennom Vulkan eller OpenGL API.
- Rendering med Vulkan bruker Vulkan-utvidelser for dynamisk å endre tilstanden til grafikkpipelinen, og redusere stamming i spill.
- Lagt til alternativ glsl-vkd3d-backend for GLSL shaders, ved å bruke vkd3d-shader.
- Gir innledende støtte for kompilering av Direct3D-effekter ved hjelp av vkd3d-shader.
- D3DX9-biblioteket implementerer muligheten til å generere MIP-teksturer (MipMap) når volumetriske teksturer lastes inn. Lagt til støtte for 64bpp RGBA og 48bpp RGB fargerepresentasjonsformater i PNG-bilder, samt X8L8V8U8, A2W10V10U10, A8P8, V16U16 og Q16W16V16U16 formater.
- Lyd og video
- Som et alternativ til den GStreamer-baserte backend, har en ny multimedia backend blitt implementert, basert på bruk av FFmpeg og egnet for å kjøre Media Foundation-rammeverket. For å aktivere en alternativ backend, bør du spesifisere "DisableGstByteStreamHandler=1" i registerdelen "HKCU\Software\Wine\MediaFoundation".
- Implementeringen av Media Foundation API har blitt forbedret for bedre å imøtekomme applikasjoner som er avhengige av demultipleks- og dekodingskomponentene.
- Lagt til støtte for å laste MIDI-filer til DirectMusic API.
- Inngangsenheter
- Lagt til den første versjonen av Bluetooth-driveren.
- Lagt til Joystick Control Panel applet (joy.cpl) med implementering av innstillinger for joysticken.
- Det er gjort forbedringer på pekerenheter (berøringsplater, mus) ved hjelp av HID-protokollen (Human Interface Device). Driveren mouhid.sys for HID-enheter er lagt til. Korrekt parsing av sammensatte inndataenheter er implementert, og informasjon om dem overføres nå til Windows-applikasjoner, som separate enheter.
- For X11-backend er støtte for berøringsskjermer lagt til og muligheten til å bruke multi-touch-modus gjennom å behandle WM_POINTER*-meldinger (WM_POINTERENTER, WM_POINTERLEAVE, etc.) er implementert.
- Implementerte plassering av enkelte interne strukturer i user32-biblioteket i delt minne, noe som økte ytelsen og reduserte belastningen på vinserveren.
- Winex11 la til støtte for behandling av XInput2-hendelser i forhold til individuelle vinduer.
- Implementert korrekt støtte for tastaturer med Dvorak-oppsettet.
- Kjerne (kjernegrensesnitt Windows)
- Lagt til støtte for eskalering av prosessprivilegier (en prosess som opprinnelig kjører som en standardbruker kan gis administratorrettigheter). Når du oppretter serverprosesser (msi action server), samt prosesser som kaller funksjonene RtlCreateUserProcess() og CreateProcessInternal(), er et begrenset administratortoken aktivert som standard.
- Ved innhenting av informasjon om disketiketter, når det er mulig, brukes nå tilgang til systemtjenester via DBus, i stedet for å forsøke å få direkte tilgang til enheten.
- Mailslots enveis IPC-mekanisme (interprosesskommunikasjon) er nå implementert direkte i Wine-serveren, noe som gir full semantisk støtte. Windows.
- Implementert venter på serieporthendelser i asynkron modus.
- Lagt til full støtte for XSTATE-prosessorutvidelser i trådsammenheng, noe som muliggjør bruk av nye vektorutvidelser som AVX-512.
- Innebygde applikasjoner
- Inndatabehandlingsmotoren som brukes i kommandotolken cmd.exe er skrevet om. Lagt til støtte for «||»-operasjoner til cmd.exe Og "&&".
- Findstr-verktøyet har lagt til støtte for regulære uttrykk og søk som ikke skiller mellom store og små bokstaver.
- Muligheten til å registrere ARM32EC-moduler er lagt til regsvr32- og rundll64-verktøyene.
- Lagt til verktøy: sortering for sortering av inndata, fc for å sammenligne filer og hvor for å søke etter filer.
- Wmic-applikasjonen implementerer en interaktiv driftsmodus.
- Explorer har lagt til valgfri støtte for startmenyen og verktøylinjen. Aktivert lansering av explorer.exe med reduserte tilgangsrettigheter.
- Utviklingsverktøy
- Lagt til "-marm64x"-alternativet til vinbygging for å generere ARM64X hybridbiblioteker.
- Lagt til "-marm64x"-alternativet til winegcc for å tillate bygging for ARM64X.
- Filer generert ved hjelp av Interface Definition Language (IDL) bruker komponenter som fullt ut støtter kjøring i tolket modus.
- Støtte for generering av typebiblioteker (TypeLib) i det gamle formatet (SLTG) er lagt til IDL (Interface Definition Language) kompilatoren.
- Winedump-verktøyet har lagt til støtte for å lagre dumper av minidump-tabeller, C++-unntaksinformasjon og typelib-ressurser.
- Miscellanea
- Forbedret støtte for Diffie-Hellman (DH) nøkkelutvekslingsprotokoll. Lagt til muligheten til å konfigurere og motta DH-parametere. Implementerte behandlere for å lage par med offentlige og private nøkler.
- Bruk av inkrementell polstring OAEP (Optimal Asymmetric Encryption Padding) sammen med RSA-algoritmen er gitt.
- DirectPlay API støtter nettverksøkter.
- Forbedret håndtering av asynkrone input/output-tilstander når man arbeider i WoW64 (64-bit)-modus Windows-på-Windows), som lar deg kjøre 32-bit Windows-applikasjoner på 64-bits Unix-systemer.
- La til støtte for lasting av ODBC-drivere for DBMS kompilert for Windows.
- For ARM-plattformen er full støtte for RPC/COM, C++ RTTI (Run-Time Type Information) og C++-unntak implementert.
- I C-runtime implementerer ANSI-funksjoner støtte for UTF-8-koding.
- Mulighetene til MSHTML-motoren er utvidet. Lagt til støtte for prototyper og objektkonstruktører. Et nytt objektbindingsgrensesnitt for MSHTML er lagt til JavaScript-motoren. MSHTML innebygde funksjoner er konvertert til gyldige JavaScript-objekter. Forbedret JavaScript-søppelsamling for å dekke alle skriptutførelseskontekster i en tråd. Lagt til støtte for ArrayBuffer og DataView JavaScript-objekter.
- Støtte for statisk analyse ved bruk av Clang- og JUnit-testrapporter er lagt til det kontinuerlige integrasjonssystemet basert på Gitlab.
- Capstone 5.0.3-biblioteket er innebygd i pakken, gjennom hvilken demontering implementeres i WineDb-feilsøkeren.
- Komponenter oppdatert til nye versjoner: 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, LibPng 4.7.0, Lib.ml.Tiff 2ml. 2.12.8, LibXslt 1.1.42 og Zlib 1.3.1.
Kilde: opennet.ru
