Lansarea stabilă Wine 10.0

După un an de dezvoltare și 29 de versiuni experimentale, a fost lansată versiunea stabilă a implementării open-source a Win32 API — Wine 10.0, care cuprinde peste 6000 de modificări. Printre realizările cheie ale noului release se numără suportul complet pentru arhitectura ARM64EC, scalarea pe ecrane cu densitate mare de pixeli, activarea implicită a driverului Wayland, implementarea panourilor pentru configurarea ecranului și joystick-ului, un backend multimedia alternativ bazat pe FFmpeg, driver Bluetooth, suport pentru Vulkan 1.4 și posibilitatea de a emula schimbarea modurilor video.

În Wine, este confirmată funcționarea completă a 5372 de programe pentru Windows (cu un an în urmă erau 5336, acum doi ani 5266, acum trei ani 5156), iar încă 4435 de programe (cu un an în urmă 4397, acum doi ani 4370, acum trei ani 4312) funcționează excelent cu unele configurații suplimentare și DLL externe. 4020 de programe (cu un an în urmă 3943, acum doi ani 3888, acum trei ani 3813) au mici probleme de funcționare, care nu afectează utilizarea funcțiilor principale ale aplicațiilor.

Noutățile cheie din Wine 10.0:

  • ARM64
    • Suportul complet pentru arhitectura ARM64EC (ARM64 Emulation Compatible) a fost asigurat, iar nivelul de suport în Wine a atins paritatea cu arhitectura ARM64. Arhitectura ARM64EC a fost dezvoltată pentru a facilita portarea aplicațiilor scrise inițial pentru sisteme x86_64 pe sisteme ARM64 și permite executarea în medii ARM64 a modulelor separate cu cod x86_64 prin intermediul emulatorului.
    • Suportul complet pentru formatul de fișiere PE ARM64X a fost implementat, permițând combinarea, într-un singur fișier executabil, a codului pentru arhitecturile ARM64EC și ARM64. Pentru a construi Wine în format ARM64X, este necesară instalarea LLVM din Git (funcționalitatea necesară va fi inclusă în versiunea LLVM 20) și, la rularea scriptului „configure”, specificarea opțiunii „—enable-archs=arm64ec,aarch64”.
    • A fost implementată o interfață pentru emularea sistemelor x86 pe 64 de biți. Când se utilizează ARM64EC, Wine funcționează așa cum este, iar emularea este aplicată doar pentru codul aplicațiilor x86-64. Biblioteca cu emulatorul nu este încă inclusă în compunerea principală a Wine, dar pentru a rula cod x86-64 în medii ARM64, se poate utiliza un emulator extern FEX, compilat cu suport pentru ARM64EC.
    • Pentru suportul ARM64, este necesară utilizarea în sistem a paginilor de memorie de 4KB, așa cum cere ABI Windows (execuția în medii cu nuclee Linux care utilizează pagini de memorie de 16K sau 64K nu este încă suportată).
  • Substanța grafică
    • A fost implementată o scalare mai precisă pe ecrane cu densitate mare de pixeli (High-DPI). A fost asigurată suportul pentru modul DPI Awareness pentru organizarea afișării aplicațiilor pe ecrane cu densitate mare de pixeli, ținând cont dacă aplicația suportă adaptarea la schimbarea DPI sau nu (aplicațiile care nu iau în considerare DPI sunt scalate automat). Au fost adăugate opțiuni pentru a suprascrie suportul High-DPI legat de aplicații individuale sau prefixe Wine.
    • În driverul pentru API-ul grafic Vulkan a fost adăugată suportul pentru specificația Vulkan 1.4 (în Wine 9.0 era suportat Vulkan 1.3.272). A fost adăugat suportul pentru extensiile Vulkan pentru codificarea și decodificarea video.
    • Prin utilizarea backend-ului X11 a fost implementată posibilitatea de a reda feronierile Vulkan pentru aplicații care folosesc astfel de feronieri pentru redarea de conținut 3D (anterior o astfel de posibilitate era disponibilă doar pentru OpenGL).
    • În biblioteca GdiPlus a fost adăugat suportul pentru mecanismul de legare a fonturilor („Font Linking”), permițând afișarea textului utilizând mai multe fonturi, dacă fonturile disponibile nu acoperă toate simbolurile întâlnite în text.
  • Wayland
    • În configurația implicită a fost activat driverul winewayland.drv, permițând utilizarea Wine în medii bazate pe protocolul Wayland fără utilizarea XWayland și componentelor X11. Wine rulează aplicațiile implicit pe Wayland direct doar dacă XWayland nu este disponibil, altfel, rularea cu utilizarea XWayland rămâne prioritară. Pentru a forța activarea Wayland, se poate folosi variabila de mediu DISPLAY sau se poate adăuga o cheie în registru, creând un fișier file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] „Graphics”=„wayland” și aplicându-l cu comanda: $ WINEPREFIX=\/cale\/către\/prefiks wine regedit \/cale\/către\/file.reg
    • În driverul winewayland.drv a fost adăugat suportul pentru OpenGL și buferele de pixeli (pBuffer).
    • Au fost rezolvate problemele cu poziționarea feronierelor emergente în medii bazate pe Wayland.
    • Prin utilizarea Wayland a fost implementat suportul pentru repetiția automată la păstrarea tastelor apăsate.
  • Integrare cu desktop-ul
    • A fost adăugat un mecanism experimental de emulare „modesetting”, care permite emularea schimbării modurilor video fără a modifica efectiv setările ecranului. Vizibilitatea schimbării rezoluției ecranului fără a schimba modul video este creată prin extensie și scalarea feronierelor.
    • A fost adăugat un nou applet Desktop Control Panel (desk.cpl) cu implementarea interfeței de gestionare a setărilor display-ului (de exemplu, este posibil să schimbi rezoluția virtuală a desktop-ului sau să configurezi parametrii emulați ai display-ului).
    • A fost adăugată posibilitatea resetării setărilor ecranului la valorile implicite în cazul în care nu este posibilă recuperarea stării după o încheiere bruscă a procesului.
    • A fost adăugat suport pentru dezactivarea afișării pictogramelor în zona de sistem (în „HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer” ar trebui să fie specificat „NoTrayItemsDisplay=1”).
    • A fost adăugat suport pentru dezactivarea shell-urilor (Shell launcher) în modul desktop (în „HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer” ar trebui să fie specificat „NoDesktop=1”).
  • Direct3D
    • Pentru randare folosind OpenGL, acum este necesar suport GLSL 1.20, precum și extensiile EXT_framebuffer_object și ARB_texture_non_power_of_two. Suportul pentru vechiul backend ARB shader și setarea OffscreenRenderingMode a fost întrerupt.
    • Pentru Direct3D 9 și versiunile anterioare, a fost adăugat un pipeline grafic cu funcții fixe (în vechile versiuni Direct3D erau disponibile doar operații grafice predefinite, care nu puteau fi modificate), implementat prin intermediul limbajului shader HLSL, care permite emularea funcțiilor fixe la randare prin API Vulkan sau OpenGL.
    • În timpul randării folosind Vulkan, sunt activate extensiile Vulkan pentru modificarea dinamică a stării pipeline-ului grafic, care permit reducerea lag-ului în jocuri.
    • A fost adăugat un backend alternativ glsl-vkd3d pentru shader-urile GLSL, folosind vkd3d-shader.
    • A fost oferit suport inițial pentru compilarea efectelor Direct3D folosind vkd3d-shader.
    • În biblioteca D3DX9 a fost implementată capacitatea de generare a MIP-texturilor (MipMap) la încărcarea texturilor volumetrice. A fost adăugat suport pentru formatele de prezentare a culorii 64bpp RGBA și 48bpp RGB în imaginile PNG, precum și pentru formatele X8L8V8U8, A2W10V10U10, A8P8, V16U16 și Q16W16V16U16.
  • Sunet și video
    • Ca alternativă la backend-ul bazat pe GStreamer, a fost implementat un nou backend multimedia, bazat pe utilizarea FFmpeg și potrivit pentru a asigura funcționarea framework-ului Media Foundation. Pentru a activa backend-ul alternativ, în secțiunea de registru „HKCU\Software\Wine\MediaFoundation” ar trebui să fie specificat „DisableGstByteStreamHandler=1”.
    • A fost îmbunătățită implementarea API-ului Media Foundation, care acum se potrivește mai bine cu aplicațiile care depind de componentele de demultiplexare și decodare.
    • API DirectMusic a fost îmbunătățit cu suport pentru încărcarea fișierelor MIDI.
  • Dispozitive de intrare
    • A fost adăugată o versiune inițială a driverului Bluetooth.
    • A fost adăugat appletul Joystick Control Panel (joy.cpl) cu implementarea setărilor pentru joystick.
    • Au fost realizate îmbunătățiri legate de dispozitivele de control al cursorului (touchpad-uri, mouse-uri) care utilizează protocolul HID (Human Interface Device). A fost adăugat driverul mouhid.sys pentru dispozitive HID. A fost implementată analiza corectă a dispozitivelor de intrare compuse și a fost asigurată transmiterea informațiilor despre acestea către aplicațiile Windows ca entități separate.
    • Pentru backend-ul X11, a fost adăugat suport pentru ecrane tactile, oferind posibilitatea utilizării modului multitouch prin procesarea mesajelor WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE etc.).
    • A fost realizată plasarea unor structuri interne ale bibliotecii user32 în memorie partajată, ceea ce a îmbunătățit performanța și a redus încărcătura pe Wine Server.
    • În winex11 a fost adăugat suport pentru procesarea evenimentelor XInput2 legate de feronarele individuale.
    • A fost implementat suport corect pentru tastaturi cu layout Dvorak.
  • Kernel (interfețe ale kernel-ului Windows)
    • A fost adăugat suport pentru ridicarea privilegiilor proceselor (un proces inițial pornit sub un utilizator obișnuit poate primi privilegii de administrator). La crearea proceselor server (msi action server), precum și a proceselor care apelează funcțiile RtlCreateUserProcess() și CreateProcessInternal(), un token de administrator restricționat este implicit activat.
    • Atunci când se primește informația despre etichetele discurilor, se utilizează, dacă este posibil, apelul la serviciile sistemului prin DBus, în loc de încercarea de acces direct la dispozitiv.
    • Mecanismul unidirecțional de interacțiune între procese (IPC) Mailslots este acum implementat direct în serverul Wine, ceea ce permite suport complet pentru semantica Windows.
    • A fost realizată așteptarea evenimentelor portului serial în mod asincron.
    • A fost adăugat suport complet pentru extensiile procesorului XSTATE în contexte ale firului, ceea ce permite utilizarea noilor extensii vectoriale, cum ar fi AVX-512.
  • Aplicații încorporate
    • Motorul de procesare a intrărilor, utilizat în interpretorul de comenzi cmd.exe, a fost rescris. În cmd.exe a fost adăugat suport pentru operațiunile «||» și «&&».
    • Utilitarul findstr a fost îmbunătățit cu suport pentru expresii regulate și căutare fără a ține cont de majuscule.
    • Utilitarele regsvr32 și rundll32 au fost actualizate cu posibilitatea de înregistrare a modulelor ARM64EC.
    • Au fost adăugate utilitare: sort pentru sortarea datelor de intrare, fc pentru compararea fișierelor și where pentru căutarea fișierelor.
    • În aplicația wmic a fost implementat un mod de lucru interactiv.
    • În Explorer a fost adăugat suport opțional pentru meniul de start și bara de unelte. A fost asigurat lansarea explorer.exe cu drepturi de acces reduse.
  • Instrumente pentru dezvoltare
    • În winebuild a fost adăugată opțiunea „-marm64x” pentru generarea de biblioteci hibride ARM64X.
    • În winegcc a fost adăugată opțiunea „-marm64x”, care asigură compilarea pentru ARM64X.
    • În fișierele generate utilizând limbajul de descriere a interfeței IDL (Limbajul de Definire a Interfeței), sunt utilizate componente care suportă complet executarea în modul interpretare.
    • Compilatorul limbajului de descriere a interfeței IDL (Interface Definition Language) a adăugat suport pentru generarea de biblioteci de tipuri (TypeLib) în formatul vechi (SLTG).
    • În utilitarul winedump a fost adăugat suport pentru salvarea dump-urilor minidump, informațiilor despre excepții C++ și resurselor typelib.
  • Diverse
    • A fost îmbunătățit suportul pentru protocolul de schimb de chei Diffie-Hellman (DH). A fost adăugat suportul pentru configurarea și obținerea parametrilor DH. Au fost implementate funcționari pentru crearea de perechi din cheia publică și cea privată.
    • A fost asigurat utilizarea umplerii suplimentare OAEP (Optimal Asymmetric Encryption Padding) împreună cu algoritmul RSA.
    • În API-ul DirectPlay a fost implementat suport pentru sesiuni de rețea.
    • A fost îmbunătățită gestionarea stărilor de intrare/ieșire asincronă în modul WoW64 (Windows-on-Windows 64-bit), care permite rularea aplicațiilor Windows pe 32 de biți în sisteme Unix pe 64 de biți.
    • A fost adăugat suport pentru încărcarea driverelor ODBC pentru SGBD-uri compilate pentru Windows.
    • Pentru platforma ARM a fost implementat un suport complet pentru RPC/COM, C++ RTTI (Run-Time Type Information) și excepții C++.
    • În runtime-ul C în funcțiile ANSI a fost implementat suport pentru codificarea UTF-8.
    • Funcționalitatea motorului MSHTML a fost extinsă. A fost adăugat suport pentru prototipuri și constructori de obiecte. În motorul JavaScript a fost adăugat o nouă interfață de legare a obiectelor pentru MSHTML. Funcțiile încorporate MSHTML au fost transformate în obiecte JavaScript corecte. Garbage collector-ul pentru JavaScript a fost îmbunătățit și acum acoperă toate contexturile de execuție a scriptului în fir. A fost adăugat suport pentru obiectele JavaScript ArrayBuffer și DataView.
    • În sistemul de integrare continuă bazat pe Gitlab a fost adăugat suport pentru analiza statică utilizând Clang și rapoarte de testare JUnit.
    • A fost inclusă biblioteca Capstone 5.0.3, prin care s-a realizat dezasamblarea în debuggerul WineDb.
    • Componentele au fost actualizate la versiuni noi: 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 și Zlib 1.3.1.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster