Stabil udgivelse af Wine 10.0

Efter et års udvikling og 29 eksperimentelle versioner er den stabile udgave af den åbne implementering af Win32 API - Wine 10.0 blevet præsenteret, som indeholder over 6000 ændringer. Blandt de vigtigste resultater i den nye version fremhæves den fulde support til ARM64EC-arkitekturen, skalérbarhed på skærme med høj pixel tæthed, som standard aktivering af Wayland-driveren, implementering af paneler til skærm- og joystick-opsætning, en alternativ multimediebakend baseret på FFmpeg, Bluetooth-driver, Vulkan 1.4 support, samt muligheden for at emulere skift af videotilstande.

I Wine er der bekræftet fuld funktionalitet for 5372 Windows-programmer (5336 sidste år, 5266 for to år siden, 5156 for tre år siden), yderligere 4435 programmer (4397 sidste år, 4370 for to år siden, 4312 for tre år siden) fungerer glimrende med ekstra konfigurationer og eksterne DLL-filer. For 4020 programmer (3943 sidste år, 3888 for to år siden, 3813 for tre år siden) er der små problemer, som ikke hindrer brugen af de grundlæggende funktioner i applikationerne.

Nøgleinnovationer i Wine 10.0:

  • ARM64
    • Der er sikret fuld support til ARM64EC-arkitekturen (ARM64 Emulation Compatible), hvor supportniveauet i Wine nu er på niveau med ARM64-arkitekturen. ARM64EC-arkitekturen er udviklet for at lette portering af applikationer, der oprindeligt er skrevet til x86_64-systemer, til ARM64-systemer og muliggør, at separate moduler med x86_64-kode kan køre i et ARM64-miljø ved hjælp af en emulator.
    • Der er implementeret fuld støtte til ARM64X PE-filformatet, som muliggør sammenlægning af kode til ARM64EC- og ARM64-arkitekturer i én eksekverbar fil. For at bygge Wine i ARM64X-format kræves det at installere LLVM fra Git (den nødvendige funktionalitet vil indgå i LLVM 20-versionen) og angive optionen „--enable-archs=arm64ec,aarch64“ ved kørsel af skriptet „configure“.
    • Der er implementeret et interface til emulering af 64-bit x86-systemer. Når ARM64EC anvendes, kører Wine som vanligt, og emulering anvendes kun til x86-64 applikationskode. Biblioteket med emulatoren er endnu ikke inkluderet i Wine's hoveddistribution, men til kørsel af x86-64 kode i et ARM64-miljø kan en ekstern emulator, FEX, der er samlet med støtte til ARM64EC, bruges.
    • For at støtte ARM64 kræves det, at systemet bruger 4KB hukommelsessider, som ABI Windows kræver (kørsel i miljøer med Linux-kerneler, der bruger 16K eller 64K hukommelsessider understøttes endnu ikke).
  • Grafikunderstøttelse
    • Der er implementeret mere præcis skalering på skærme med høj pixel tæthed (High-DPI). Der er tilføjet støtte for DPI Awareness til organisering af applikationers visning på skærme med høj pixel tæthed, alt efter om applikationen understøtter tilpasning til ændring af DPI eller ej (applikationer, der ikke tager højde for DPI, skaleres automatisk). Muligheder for at overskrive understøttelse af High-DPI er tilføjet for specifikke applikationer eller Wine-præfiks.
    • Driveren til grafisk API Vulkan har fået tilføjet support for Vulkan 1.4 specifikationen (i Wine 9.0 blev Vulkan 1.3.272 understøttet). Der er tilføjet support for Vulkan-udvidelser til kodning og dekodning af video.
    • Ved brug af X11-backenden er muligheden for at tegne Vulkan-børnevinduer til applikationer, der bruger sådanne vinduer til at vise 3D-indhold, blevet implementeret (tidligere var denne mulighed kun tilgængelig for OpenGL).
    • GdiPlus-biblioteket har fået tilføjet støtte til font binding mekanismen ('Font Linking'), som gør det muligt at bruge flere skrifttyper ved visning af tekst, hvis enkelte skrifttyper ikke dækker alle tegnene i teksten.
  • Wayland
    • I standardkonfigurationen er winewayland.drv driveren aktiveret, hvilket gør det muligt at bruge Wine i miljøer baseret på Wayland-protokollen uden brug af XWayland og X11-komponenter. Wine starter applikationer som standard direkte på Wayland, kun hvis XWayland ikke er tilgængeligt; ellers forbliver start med brug af XWayland prioriteret. For at tvinge Wayland kan miljøvariablen DISPLAY bruges, eller en nøgle kan tilføjes til registreringsdatabasen ved at oprette en fil file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" og anvende den med kommandoen: $ WINEPREFIX=\/sti\/til\/prefix wine regedit \/sti\/til\/file.reg
    • I winewayland.drv driveren er OpenGL og pixelbuffers (pBuffer) blevet tilføjet som understøttelse.
    • Problemer med positioneringen af pop op-vinduer i Wayland-baserede miljøer er blevet løst.
    • Ved brug af Wayland er der tilføjet support for automatisk gentagelse af tastetryk ved at holde tasterne nede.
  • Integration med skrivebordet
    • Der er tilføjet en eksperimentel 'modesetting'-emuleringsmekanisme, der muliggør emulering af skift af videoindstillinger uden faktisk at ændre skærmindstillingerne. Synligheden af ændringen i skærmopløsningen uden at skifte videoindstilling skabes gennem udvidelse og skalering af vinduer.
    • Der er tilføjet en ny applet Desktop Control Panel (desk.cpl) med implementering af en grænseflade til styring af skærmindstillinger (for eksempel kan du ændre den virtuelle skærmopløsning eller konfigurere emulerede skærmindstillinger).
    • Mulighed for at nulstille skærmindstillinger til standardværdierne er blevet tilføjet i tilfælde af, at tilstanden ikke kan gendannes efter et uventet programnedbrud.
    • Der er blevet tilføjet støtte til deaktivering af visning af ikoner i systembakken (i "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" skal "NoTrayItemsDisplay=1" angives).
    • Støtte til deaktivering af shells (Shell launcher) i desktop-tilstand er blevet tilføjet (i "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" skal "NoDesktop=1" angives).
  • Direct3D
    • For rendering ved hjælp af OpenGL kræves nu støtte til GLSL 1.20 samt udvidelserne EXT_framebuffer_object og ARB_texture_non_power_of_two. Støtten til den gamle backend ARB shader og indstillingen OffscreenRenderingMode er blevet stoppet.
    • For Direct3D 9 og ældre versioner er der tilføjet en grafisk pipeline med faste funktioner (i de gamle Direct3D var der kun foruddefinerede grafiske operationer, der ikke kunne ændres), implementeret ved hjælp af shadersproget HLSL og der muliggør emulering af faste funktioner ved rendering via Vulkan eller OpenGL API.
    • Ved rendering ved hjælp af Vulkan anvendes Vulkan-udvidelser til dynamisk at ændre tilstanden af den grafiske pipeline, hvilket reducerer forsinkelser i spil.
    • En alternativ backend glsl-vkd3d til GLSL shaders, der bruger vkd3d-shader, er blevet tilføjet.
    • Der er givet indledende støtte til kompilering af Direct3D-effekter ved hjælp af vkd3d-shader.
    • I D3DX9-biblioteket er der implementeret mulighed for generering af MIP-teksturer (MipMap) ved indlæsning af volumetriske teksturer. Støtte til farveskemaer 64bpp RGBA og 48bpp RGB i PNG-billeder samt formaterne X8L8V8U8, A2W10V10U10, A8P8, V16U16 og Q16W16V16U16 er blevet tilføjet.
  • Lyd og video
    • Som et alternativ til GStreamer-baseret backend er der implementeret en ny multimediabackend, baseret på brugen af FFmpeg og egnet til at sikre funktionaliteten af Media Foundation-rammen. For at aktivere den alternative backend i registreringssektionen "HKCU\Software\Wine\MediaFoundation", skal "DisableGstByteStreamHandler=1" angives.
    • Implementeringen af API Media Foundation er forbedret, så den nu fungerer bedre sammen med applikationer, der er afhængige af demultiplexerings- og dekodingskomponenter.
    • API'en DirectMusic har fået tilføjet support til upload af MIDI-filer.
  • Input-enheder
    • Den første version af Bluetooth-driveren er blevet tilføjet.
    • Joystick Control Panel-applet (joy.cpl) er tilføjet med indstillinger for joystick.
    • Forbedringer er foretaget vedrørende pegeredskaber (touchpads, mus), der bruger HID (Human Interface Device)-protokollen. Driveren mouhid.sys for HID-enheder er blevet tilføjet. Korrekt parsing af sammensatte inputenheder er implementeret, hvilket sikrer overførsel af information om dem til Windows-applikationer som separate enheder.
    • Backend til X11 har fået support til touchskærme og muligheden for at bruge multitouch-tilstand gennem behandling af WM_POINTER*-beskeder (WM_POINTERENTER, WM_POINTERLEAVE osv.).
    • Nogle interne strukturer fra biblioteket user32 er blevet implementeret i delt hukommelse, hvilket har forbedret ydeevnen og reduceret belastningen på Wine Server.
    • XInput2-begivenhedshåndtering er blevet tilføjet til winex11 med binding til særskilte vinduer.
    • Korrekt support for tastaturer med Dvorak-layout er blevet implementeret.
  • Kernen (Windows kernel interfaces)
    • Support for at hæve privilegier for processer er blevet tilføjet (en proces, der oprindeligt blev kørt som en almindelig bruger, kan tildeles administratorrettigheder). Ved oprettelse af serverprocesser (msi action server) samt processer, der kalder RtlCreateUserProcess() og CreateProcessInternal(), bruges en begrænset administrator-token som standard.
    • Når der indhentes oplysninger om diskmærker, anvendes der nu i videst mulige omfang opkald til systemtjenester via DBus i stedet for at forsøge direkte adgang til enheden.
    • En envejs inter-process kommunikationsmekanisme (IPC) ved navn Mailslots er nu implementeret direkte i Wine Server, hvilket har sikret fuld støtte for Windows-semantikken.
    • Implementering af asynkron venting af serielle port-begivenheder er gennemført.
    • Fuld support for procesorkompleksiteterne XSTATE i trådkontekster er blevet tilføjet, hvilket gør det muligt at bruge nye vektorextensioner som AVX-512.
  • Indbyggede applikationer
    • Inputbehandlingsmotoren, der bruges i kommandoprompten cmd.exe, er blevet omskrevet. Support for operationerne '||' og '&&' er blevet tilføjet i cmd.exe.
    • Findstr-værktøjet har fået support for regulære udtryk og case-insensitive søgning.
    • Værktøjerne regsvr32 og rundll32 har fået muligheden for at registrere ARM64EC-moduler.
    • Tilføjet værktøjer: sort til sortering af inputdata, fc til sammenligning af filer og where til søgning efter filer.
    • I applikationen wmic er der implementeret en interaktiv driftstilstand.
    • Explorer har fået valgfri støtte til startmenuen og værktøjslinjen. Explorer.exe kan nu startes med begrænsede adgangsrettigheder.
  • Udviklingsværktøjer
    • I winebuild er der tilføjet en parameter «-marm64x» til generering af hybridbiblioteker ARM64X.
    • I winegcc er der tilføjet en parameter «-marm64x», som muliggør bygning til ARM64X.
    • I filer, der genereres ved brug af Interface Definition Language (IDL), er komponenter involveret, som fuldt ud understøtter udførelse i fortolkningsmode.
    • I IDL-kompilatoren (Interface Definition Language) er der tilføjet støtte til generering af typebiblioteker (TypeLib) i det gamle format (SLTG).
    • I winedump-værktøjet er der tilføjet støtte til at gemme dumps af minidump-tabeller, oplysninger om C++-undtagelser og typelib-ressourcer.
  • Diverse
    • Støtten til protokollen for Diffie-Hellman nøgleudveksling (DH) er forbedret. Mulighed for at konfigurere og modtage DH-parametre er tilføjet. Behandlere til oprettelse af par af offentlige og private nøgler er implementeret.
    • Det er sikret, at OAEP (Optimal Asymmetric Encryption Padding) bruges sammen med RSA-algoritmen.
    • I DirectPlay API er der implementeret støtte til netværkssessioner.
    • Der er udført fejlfinding af tilstande for asynkron input/output, når der arbejdes i WoW64-tilstand (64-bit Windows-on-Windows), der muliggør kørsel af 32-bit Windows-applikationer på 64-bit Unix-systemer.
    • Der er tilføjet støtte til indlæsning af ODBC-drivere til databaser samlet til Windows.
    • For ARM-platformen er der implementeret fuld støtte til RPC/COM, C++ RTTI (Run-Time Type Information) og C++-undtagelser.
    • I C-runtime er der i ANSI-funktionerne implementeret støtte til UTF-8-tegnkodning.
    • Mulighederne i MSHTML-motoren er udvidet. Der er tilføjet støtte til prototypes og objektkonstruktører. Der er tilføjet et nyt bindingsinterface for objekter til MSHTML i JavaScript-motoren. In-house-funktioner i MSHTML er blevet transformeret til gyldige JavaScript-objekter. Affaldsindsamleren for JavaScript er forbedret og dækker nu alle udførelseskontekster for scriptet i tråden. Der er tilføjet støtte til JavaScript-objekter ArrayBuffer og DataView.
    • I Gitlab-baseret kontinuerlig integration er der tilføjet støtte til statisk analyse ved brug af Clang og rapporter om gennemførte JUnit-tests.
    • Inkluderet er biblioteket Capstone 5.0.3, som muliggør disassembling i WineDb-debuggeren.
    • Komponenter opdateret til nye 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 og Zlib 1.3.1.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster