Stabil udgivelse af Wine 7.0

Efter et års udvikling og 30 eksperimentelle versioner blev en stabil udgivelse af den åbne implementering af Win32 API præsenteret - Wine 7.0, som inkorporerede mere end 9100 ændringer. De vigtigste resultater af den nye version omfatter oversættelse af de fleste vinmoduler til PE-format, understøttelse af temaer, udvidelse af stakken for joysticks og inputenheder med et HID-interface og implementering af WoW64-arkitekturen til at køre 32-bit programmer i en 64-bit miljø.

Wine har bekræftet den fulde drift af 5156 (for et år siden 5049) programmer til Windows, andre 4312 (for et år siden 4227) programmer fungerer perfekt med yderligere indstillinger og eksterne DLL'er. 3813 programmer (for 3703 år siden) har mindre driftsproblemer, der ikke forstyrrer brugen af ​​applikationernes hovedfunktioner.

Vigtigste innovationer i Wine 7.0:

  • Moduler i PE-format
    • Næsten alle DLL'er er blevet konverteret til at bruge PE (Portable Executable, brugt på Windows) eksekverbare filformat i stedet for ELF. Brugen af ​​PE løser problemer med at understøtte forskellige kopibeskyttelsesordninger, der bekræfter identiteten af ​​systemmoduler på disken og i hukommelsen.
    • Muligheden for at interagere PE-moduler med Unix-biblioteker ved hjælp af standard NT-kernesystemkaldet er blevet implementeret, hvilket giver dig mulighed for at skjule adgang til Unix-kode fra Windows-debuggere og overvåge trådregistrering.
    • Indbyggede DLL'er indlæses nu kun, hvis der er en tilsvarende PE-fil på disken, uanset om det er et rigtigt bibliotek eller en stub. Denne ændring gør det muligt for applikationen altid at se den korrekte binding til PE-filer. For at deaktivere denne adfærd kan du bruge miljøvariablen WINEBOOTSTRAPMODE.
  • WoW64
    • WoW64-arkitekturen (64-bit Windows-på-Windows) er blevet implementeret, så du kan køre 32-bit Windows-applikationer i 64-bit Unix-processer. Support implementeres gennem tilslutning af et lag, der oversætter 32-bit NT-systemkald til 64-bit kald til NTDLL.
    • WoW64-lag er forberedt til de fleste Unix-biblioteker og giver 32-bit PE-moduler adgang til 64-bit Unix-biblioteker. Når alle moduler er blevet konverteret til PE-format, vil det være muligt at køre 32-bit Windows-applikationer uden at installere 32-bit Unix-biblioteker.
  • Temaer
    • Temastøtte er implementeret. Designtemaerne "Lys", "Blå" og "Klassisk blå" er inkluderet, som kan vælges gennem WineCfg-konfiguratoren.
    • Tilføjet muligheden for at tilpasse udseendet af alle grænsefladekontroller gennem temaer. Udseendet af elementer opdateres automatisk efter ændring af designtemaet.
    • Temaunderstøttelse er blevet tilføjet til alle indbyggede Wine-applikationer. Applikationerne er blevet tilpasset til skærme med høj pixeltæthed (High DPI).
  • Grafik undersystem
    • Et nyt Win32u-bibliotek er blevet tilføjet, som inkluderer dele af GDI32- og USER32-bibliotekerne relateret til grafikbehandling og vinduesstyring på kerneniveau. I fremtiden vil arbejdet påbegyndes med at portere driverkomponenter såsom winex32.drv og winemac.drv til Win11u.
    • Vulkan-driveren understøtter Vulkan grafik API-specifikation 1.2.201.
    • Giver support til udlæsning af skraverede geometriske objekter via Direct2D API, med mulighed for at kontrollere om et klik rammer (hit-test).
    • Direct2D API'en giver indledende understøttelse af visuelle effekter anvendt ved hjælp af ID2D1Effect-grænsefladen.
    • Direct2D API har tilføjet understøttelse af ID2D1MultiThread-grænsefladen, som bruges til at organisere eksklusiv adgang til ressourcer i flertrådede applikationer.
    • WindowsCodecs-bibliotekerne understøtter afkodning af billeder i WMP-formatet (Windows Media Photo) og kodning af billeder i DDS-formatet (DirectDraw Surface). Vi understøtter ikke længere kodning af billeder i ICNS-formatet (til macOS), som ikke understøttes på Windows.
  • Direct3D
    • Den nye gengivelsesmotor er blevet væsentligt forbedret, og oversætter Direct3D-kald til Vulkan grafik API. I de fleste situationer er niveauet af understøttelse af Direct3D 10 og 11 i den Vulkan-baserede motor blevet bragt på lige fod med den ældre OpenGL-baserede motor. For at aktivere Vulkan-gengivelsesmotoren skal du indstille Direct3D-registreringsvariablen "renderer" til "vulkan".
    • Mange funktioner i Direct3D 10 og 11 er implementeret, herunder udskudte kontekster, tilstandsobjekter, der fungerer i enhedskonteksten, vedvarende forskydninger i buffere, sletning af teksturvisninger, der ikke er i orden, kopiering af data mellem ressourcer i typeløse formater (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32_32TYPELESSA32_XNUMXBTY), osv. .
    • Tilføjet understøttelse af multi-monitor-konfigurationer, så du kan vælge en skærm til at vise en Direct3D-applikation i fuldskærmstilstand.
    • DXGI API implementerer skærmgammakorrektion, som kan bruges af Direct3D 10 og 11 baserede applikationer til at ændre skærmens lysstyrke. Aktiveret hentning af virtuelle rammebuffertællere (SwapChain).
    • Direct3D 12 tilføjer understøttelse af version 1.1 rodsignaturer.
    • I gengivelseskoden via Vulkan API er effektiviteten af ​​forespørgselsbehandling blevet forbedret, når systemet understøtter udvidelsen VK_EXT_host_query_reset.
    • Tilføjet muligheden for at outputte virtuelle framebuffere (SwapChain) via GDI, hvis OpenGL eller Vulkan ikke kan bruges til visning, for eksempel ved output til et vindue fra forskellige processer, for eksempel i programmer baseret på CEF (Chromium Embedded Framework) frameworket.
    • Når du bruger GLSL shader backend, er den "præcise" modifikator sikret for shader instruktioner.
    • DirectDraw API tilføjer understøttelse af 3D-gengivelse i systemhukommelsen ved hjælp af softwareenheder som "RGB", "MMX" og "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 og NVIDIA GT 630-kort er blevet tilføjet til Direct1030D-grafikkortdatabasen.
    • "UseGLSL"-nøglen er blevet fjernet fra HKEY_CURRENT_USER\Software\Wine\Direct3D registreringsdatabasen, i stedet for hvilket du, startende med Wine 5.0, skal bruge "shader_backend".
    • For at understøtte Direct3D 12 skal du nu som minimum have version 3 af vkd1.2d-biblioteket.
  • D3DX
    • D3DX 10-implementeringen har forbedret understøttelse af rammerne for visuelle effekter og tilføjet understøttelse af Windows Media Photo-billedformatet (JPEG XR)
    • Tilføjede teksturoprettelsesfunktioner i D3DX10, såsom D3DX10CreateTextureFromMemory().
    • ID3DX10Sprite og ID3DX10Font softwaregrænseflader er delvist implementeret.
  • Lyd og video
    • GStreamer-tilføjelser til DirectShow og Media Foundation-rammeværket er kombineret til én fælles WineGStreamer-backend, hvilket skulle forenkle udviklingen af ​​nye indholdsdekodnings-API'er.
    • Baseret på WineGStreamer-backend er Windows Media-objekter implementeret til synkron og asynkron læsning.
    • Implementeringen af ​​Media Foundation-rammen er blevet yderligere forfinet, understøttelse af IMFPMediaPlayer-funktionaliteten og prøveallokatoren er blevet tilføjet, og understøttelsen af ​​EVR- og SAR-gengivelsesbuffere er blevet forbedret.
    • Wineqtdecoder-biblioteket, som giver en dekoder til QuickTime-formatet, er blevet fjernet (alle codecs bruger nu GStreamer).
  • Input enheder
    • Stakken for input-enheder, der understøtter HID (Human Interface Devices)-protokollen, er blevet væsentligt forbedret, hvilket giver funktioner såsom at analysere HID-deskriptorer, behandle HID-meddelelser og levere mini-HID-drivere.
    • I backends af winebus.sys-driveren er oversættelsen af ​​enhedsbeskrivelser til HID-meddelelser blevet forbedret.
    • Tilføjet en ny DirectInput-backend til joysticks, der understøtter HID-protokollen. Muligheden for at bruge feedback-effekter i joysticks er blevet implementeret. Forbedret joystick kontrolpanel. Optimeret interaktion med XInput-kompatible enheder. I WinMM er joystick-understøttelse blevet flyttet til DInput i stedet for at bruge evdev-backend på Linux og IOHID på macOS IOHID. Den gamle joystick driver winejoystick.drv er blevet fjernet.
    • Der er tilføjet nye test til DInput-modulet, baseret på brugen af ​​virtuelle HID-enheder og ikke kræver en fysisk enhed.
  • Tekst og skrifttyper
    • Tilføjet Font Set-objekt til DirectWrite.
    • RichEdit implementerer TextHost-grænsefladen korrekt.
  • Kernel (Windows Kernel Interfaces)
    • Når du kører en uidentificeret eksekverbar fil (såsom 'wine foo.msi') i Wine, kaldes start.exe nu, som kalder behandlere, der er knyttet til filtypen.
    • Tilføjet understøttelse af synkroniseringsmekanismer NtAlertThreadByThreadId og NtWaitForAlertByThreadId, svarende til futexes i Linux.
    • Tilføjet understøttelse af NT-debug-objekter, der bruges til at fejlfinde kernefunktioner.
    • Tilføjet understøttelse af dynamiske registreringsnøgler for at gemme ydeevnedata.
  • C Køretid
    • C runtime implementerer et komplet sæt matematiske funktioner, som hovedsageligt overføres fra Musl-biblioteket.
    • Alle CPU-platforme giver korrekt understøttelse af floating point-funktioner.
  • Netværksfunktioner
    • Forbedret kompatibilitetstilstand for Internet Explorer 11 (IE11), som nu bruges som standard til behandling af HTML-dokumenter.
    • mshtml-biblioteket implementerer ES6 JavaScript-tilstand (ECMAScript 2015), som understøtter funktioner såsom let-udtrykket og Map-objektet.
    • Installation af MSI-pakker med tilføjelser til Gecko-motoren i Wine-arbejdsmappen udføres nu, når det er nødvendigt, og ikke under en Wine-opdatering.
    • Tilføjet understøttelse af DTLS-protokollen.
    • NSI-tjenesten (Network Store Interface) er blevet implementeret, der lagrer og transmitterer information om routing og netværksgrænseflader på computeren til andre tjenester.
    • WinSock API-handlere såsom setsockopt og getsockopt er blevet flyttet til NTDLL og afd.sys-driveren for at passe til Windows-arkitekturen.
    • Wines egne netværksdatabasefiler, såsom /etc/protocols og /etc/networks, er nu installeret i Wine-arbejdsbiblioteket, i stedet for at få adgang til lignende Unix-databaser.
  • Alternative platforme
    • Tilføjet understøttelse af Apple-udstyr baseret på M1 ARM-chips (Apple Silicon).
    • Understøttelse af BCrypt- og Secur32-funktioner på macOS kræver nu installation af GnuTLS-biblioteket.
    • 32-bit eksekverbare filer til ARM-platforme er nu bygget i Thumb-2-tilstand, svarende til Windows. En preloader bruges til at indlæse sådanne filer.
    • For 32-bit ARM-platforme er understøttelse af afvikling af undtagelser blevet implementeret.
    • For FreeBSD er antallet af understøttede forespørgsler til systeminformation på lavt niveau, såsom hukommelsesstatus og batteriopladningsniveau, blevet udvidet.
  • Indbyggede applikationer og udviklingsværktøjer
    • Reg.exe-værktøjet har tilføjet understøttelse af 32- og 64-bit registreringsdatabasevisninger. Tilføjet support til kopiering af registreringsdatabasenøgler.
    • WineDump-værktøjet har tilføjet understøttelse til at dumpe Windows-metadata og vise detaljerede oplysninger om CodeView-indgange.
    • Wine Debugger (winedbg) giver mulighed for at debugge 32-bit processer fra en 64-bit debugger.
    • Muligheden for at indlæse biblioteker indbygget i PE-filer er blevet tilføjet til IDL-kompileren (widl), understøttelse af WinRT-specifikke attributter og konstruktioner er blevet tilvejebragt, og en platformsspecifik bibliotekssøgning er blevet implementeret.
  • Samlingssystem
    • I arkitekturspecifikke biblioteker gemmes biblioteker nu med navne, der afspejler arkitekturen og den eksekverbare type, såsom 'i386-windows' for PE-formatet og 'x86_64-unix' for unix-biblioteker, hvilket muliggør understøttelse af forskellige arkitekturer i en enkelt vin installation og sørge for krydskompilering af Winelib.
    • For at indstille en indstilling i headerne af PE-filer, der styrer overgangen til at bruge native DLL'er, er flaget '--prefer-native option' blevet tilføjet til winebuild (DLL_WINE_PREATTACH-behandling i DllMain er blevet stoppet).
    • Tilføjet understøttelse af version 4 af Dwarf debug-dataformatet, som nu bruges som standard ved opbygning af vinbiblioteker.
    • Tilføjet byggemulighed '—enable-build-id' for at gemme unikke build-id'er i eksekverbare filer.
    • Tilføjet understøttelse til brug af Clang-kompileren i MSVC-kompatibilitetstilstand.
  • Miscellanea
    • Navnene på typiske mapper i brugerskallen (Windows Shell) er givet til det skema, der bruges startende med Windows Vista, dvs. I stedet for 'Mine dokumenter' oprettes der nu et 'Dokumenter'-bibliotek, og de fleste data gemmes i 'AppData'-biblioteket.
    • Understøttelse af OpenCL 1.2-specifikationen er blevet tilføjet til OpenCL-bibliotekslaget.
    • WinSpool-driveren har tilføjet understøttelse af forskellige sidestørrelser ved udskrivning.
    • Tilføjet indledende support til MSDASQL, Microsoft OLE DB-udbyderen til ODBC-drivere.
    • Wine Mono-motoren med .NET-platformimplementering er blevet opdateret til udgivelse 7.0.0.
    • Unicode-data er blevet opdateret til Unicode 14-specifikationen.
    • Kildetræet inkluderer bibliotekerne Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt og Zlib, som er kompileret i PE-format og ikke kræver en version i Unix-format. Samtidig kan disse biblioteker også importeres fra systemet for at bruge eksterne samlinger i stedet for indbyggede PE-muligheder.

Kilde: opennet.ru

Tilføj en kommentar