Liberazione stabile di Wine 7.0

Dopu un annu di sviluppu è 30 versioni sperimentali, una liberazione stabile di l'implementazione aperta di l'API Win32 hè stata presentata - Wine 7.0, chì incorpore più di 9100 cambiamenti. I rializazioni chjave di a nova versione includenu a traduzzione di a maiò parte di i moduli Wine in formatu PE, supportu per i temi, espansione di a pila per joysticks è dispositivi di input cù una interfaccia HID, è implementazione di l'architettura WoW64 per eseguisce prugrammi 32-bit in un Ambiente 64-bit.

Wine hà cunfirmatu u funziunamentu cumpletu di 5156 (un annu fà 5049) prugrammi per Windows, un altru 4312 (un annu fà 4227) i prugrammi funzionanu perfettamente cù paràmetri supplementari è DLL esterni. I prugrammi 3813 (3703 anni fà) anu prublemi operativi minori chì ùn interferiscenu micca cù l'usu di e funzioni principali di l'applicazioni.

Innuvazioni chjave in Wine 7.0:

  • Moduli in formatu PE
    • Quasi tutti i DLL sò stati cunvertiti per utilizà u formatu di file eseguibile PE (Portable Executable, utilizatu in Windows) invece di ELF. L'usu di PE risolve i prublemi cù u sustegnu di diversi schemi di prutezzione di copia chì verificanu l'identità di i moduli di u sistema in u discu è in memoria.
    • A capacità di interagisce cù i moduli PE cù biblioteche Unix utilizendu a chjama di u sistema di kernel standard NT hè stata implementata, chì vi permette di ammuccià l'accessu à u codice Unix da i debuggers di Windows è di monitorà a registrazione di filu.
    • I DLL integrati sò avà caricati solu s'ellu ci hè un schedariu PE currispundente nantu à u discu, indipendentemente da s'ellu hè una vera biblioteca o un stub. Questa mudificazione permette à l'applicazione di vede sempre u ligame currettu à i schedari PE. Per disattivà stu cumpurtamentu, pudete aduprà a variabile d'ambiente WINEBOOTSTRAPMODE.
  • WoW64
    • L'architettura WoW64 (64-bit Windows-on-Windows) hè stata implementata, chì vi permette di eseguisce applicazioni Windows 32-bit in prucessi Unix 64-bit. U supportu hè implementatu per via di a cunnessione di una capa chì traduce e chjama di u sistema NT 32-bit in chjamate 64-bit à NTDLL.
    • I strati WoW64 sò preparati per a maiò parte di e librerie Unix è permettenu à i moduli PE di 32-bit accede à e librerie Unix di 64 bit. Una volta chì tutti i moduli sò stati cunvertiti in u formatu PE, serà pussibule eseguisce applicazioni Windows 32-bit senza installà librerie Unix 32-bit.
  • Temi
    • U supportu tematicu hè statu implementatu. I temi di cuncepimentu "Light", "Blue" è "Classic Blue" sò inclusi, chì ponu esse selezziunati attraversu u configuratore WineCfg.
    • Aggiunta a capacità di persunalizà l'apparenza di tutti i cuntrolli di l'interfaccia attraversu temi. L'aspettu di l'elementi hè aghjurnatu automaticamente dopu avè cambiatu u tema di u disignu.
    • U supportu di u tema hè statu aghjuntu à tutte l'applicazioni Wine integrate. L'applicazioni sò state adattate à schermi cù alta densità di pixel (High DPI).
  • Sottusistema graficu
    • Una nova biblioteca Win32u hè stata aghjunta, chì include parte di e librerie GDI32 è USER32 relative à u processu graficu è a gestione di a finestra à u livellu di u kernel. In u futuru, u travagliu cumincià à portà i cumpunenti di u driver cum'è winex32.drv è winemac.drv à Win11u.
    • U driver Vulkan supporta a specificazione di l'API grafica Vulkan 1.2.201.
    • Fornitu supportu per l'output di l'uggetti geometrichi scavati via l'API Direct2D, cù a capacità di verificà se un clic hits (hit-test).
    • L'API Direct2D furnisce un supportu iniziale per l'effetti visuali applicati cù l'interfaccia ID2D1Effect.
    • L'API Direct2D hà aghjustatu supportu per l'interfaccia ID2D1MultiThread, chì hè utilizata per urganizà l'accessu esclusivu à e risorse in applicazioni multi-thread.
    • U settore di biblioteche WindowsCodecs furnisce supportu per decodificà l'imaghjini in u formatu WMP (Windows Media Photo) è l'imaghjini di codificazione in u formatu DDS (DirectDraw Surface). Ùn supportemu più l'imàgine di codificazione in u formatu ICNS (per macOS), chì ùn hè micca supportatu in Windows.
  • Direct3D
    • U novu mutore di rendering hè statu migliuratu significativamente, traducendu e chjama Direct3D à l'API grafica Vulkan. In a maiò parte di situazione, u livellu di supportu per Direct3D 10 è 11 in u mutore basatu in Vulkan hè statu purtatu à parità cù u vechju mutore basatu in OpenGL. Per attivà u mutore di rendering Vulkan, stabilisce a variabile di registru Direct3D "renderer" à "vulkan".
    • Parechje caratteristiche di Direct3D 10 è 11 sò implementate, cumpresi Cuntestazioni Deferred, oggetti statali chì operanu in u cuntestu di u dispositivu, offsets persistenti in buffers, sguassate viste di texture fora di ordine, cupiendu dati trà risorse in formati senza tipu (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32B32SXNUMX), etc. .
    • Aghjunghje un supportu per cunfigurazioni multi-monitor, chì vi permette di selezziunà un monitor per vede una applicazione Direct3D in modu di schermu pienu.
    • L'API DXGI furnisce a correzione gamma di u screnu, chì pò esse aduprata da l'applicazioni basate in Direct3D 10 è 11 per cambià a luminosità di u screnu. A ripresa attivata di i contatori di framebuffer virtuali (SwapChain).
    • Direct3D 12 aghjunghjenu supportu per a versione 1.1 di e firme di root.
    • In u codice di rendering via l'API Vulkan, l'efficienza di u processu di e dumande hè stata migliurata quandu u sistema sustene l'estensione VK_EXT_host_query_reset.
    • Aggiunta l'abilità di pruduce framebuffers virtuali (SwapChain) via GDI se OpenGL o Vulkan ùn pò micca esse usatu per a visualizazione, per esempiu, quandu si prucede à una finestra da diversi prucessi, per esempiu, in prugrammi basati nantu à u framework CEF (Chromium Embedded Framework).
    • Quandu si usa u backend di shader GLSL, u modificatore "precisu" hè assicuratu per l'istruzzioni di shader.
    • L'API DirectDraw aghjunghjenu supportu per a rendering 3D in a memoria di u sistema utilizendu i dispositi software cum'è "RGB", "MMX" è "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 è NVIDIA GT 630 carte sò state aghjunte à a basa di dati di carte grafiche Direct1030D.
    • A chjave "UseGLSL" hè stata sguassata da u registru HKEY_CURRENT_USER\Software\Wine\Direct3D, invece di quale, principiendu cù Wine 5.0, avete bisognu di utilizà "shader_backend".
    • Per supportà Direct3D 12, avete avà bisognu di almenu a versione 3 di a biblioteca vkd1.2d.
  • D3DX
    • L'implementazione di D3DX 10 hà migliuratu u supportu per u quadru di effetti visuali è hà aghjuntu un supportu per u formatu d'imaghjini Windows Media Photo (JPEG XR)
    • Funzioni di creazione di texture aghjunte furnite in D3DX10, cum'è D3DX10CreateTextureFromMemory().
    • L'interfaccia di u software ID3DX10Sprite è ID3DX10Font sò state implementate parzialmente.
  • Sonu è video
    • Add-ons GStreamer per DirectShow è u framework Media Foundation sò cumminati in un backend cumuni WineGStreamer, chì deve simplificà u sviluppu di novi API di decodificazione di cuntenutu.
    • Basatu nantu à u backend WineGStreamer, l'oggetti di Windows Media sò implementati per a lettura sincrona è asincrona.
    • L'implementazione di u quadru di Media Foundation hè stata ulteriormente raffinata, u supportu per a funziunalità IMFPMediaPlayer è l'allocatore di mostra hè statu aghjustatu, è u supportu per i buffer di rendering EVR è SAR hè statu migliuratu.
    • A biblioteca wineqtdecoder, chì furnisce un decodificatore per u formatu QuickTime, hè stata sguassata (tutti i codecs usanu avà GStreamer).
  • Input Devices
    • A pila per i dispositi di input chì supportanu u protocolu HID (Human Interface Devices) hè statu migliuratu significativamente, furnisce capacità cum'è l'analisi di descrittori HID, processà i missaghji HID è furnisce i driver mini-HID.
    • In i backends di u driver winebus.sys, a traduzzione di e descrizioni di u dispositivu in i missaghji HID hè stata migliurata.
    • Aggiuntu un novu backend DirectInput per i joysticks chì supportanu u protocolu HID. A capacità di utilizà l'effetti di feedback in i joysticks hè stata implementata. Pannellu di cuntrollu di joystick mejoratu. Interazione ottimizzata cù i dispositi compatibili XInput. In WinMM, u supportu di joystick hè statu spustatu in DInput, invece di utilizà u backend evdev in Linux è IOHID in macOS IOHID. U vechju driver di joystick winejoystick.drv hè statu eliminatu.
    • Nuvelle teste sò state aghjunte à u modulu DInput, basatu annantu à l'usu di i dispositi HID virtuali è micca bisognu di un dispositivu fisicu.
  • Testu è fonti
    • Aggiuntu l'oggettu di Font Set à DirectWrite.
    • RichEdit implementa currettamente l'interfaccia TextHost.
  • Kernel (Interfacce Kernel Windows)
    • Quandu eseguisce un schedariu eseguibile micca identificatu (cum'è 'wine foo.msi') in Wine, start.exe hè issa chjamatu, chì invoca i gestori assuciati cù u tipu di schedariu.
    • Aghjunghje supportu per i meccanismi di sincronizazione NtAlertThreadByThreadId è NtWaitForAlertByThreadId, simili à futexes in Linux.
    • Aggiuntu supportu per l'oggetti di debugging NT utilizati per debug e funzioni di u kernel.
    • Aghjunghje supportu per e chjave di registru dinamicu per salvà dati di rendiment.
  • C Runtime
    • U runtime C implementa un inseme cumpletu di funzioni matematiche, chì sò principalmente traspurtati da a biblioteca Musl.
    • Tutte e piattaforme di CPU furnisce un supportu currettu per e funzioni in virgule flottante.
  • Funzioni di rete
    • Modu di cumpatibilità mejoratu per Internet Explorer 11 (IE11), chì hè oghji utilizatu per automaticamente per processà documenti HTML.
    • A biblioteca mshtml implementa u modu JavaScript ES6 (ECMAScript 2015), chì furnisce supportu per funzioni cum'è l'espressione let è l'ughjettu Map.
    • A stallazione di pacchetti MSI cù aghjunte à u mutore Gecko in u cartulare di travagliu di u Vinu hè avà fatta quandu hè necessariu, è micca durante una aghjurnazione di u Vinu.
    • Supportu aghjuntu per u protocolu DTLS.
    • U serviziu NSI (Network Store Interface) hè statu implementatu, almacenendu è trasmettenu infurmazioni nantu à u routing è l'interfaccia di rete in l'urdinatore à altri servizii.
    • I gestori di l'API WinSock, cum'è setsockopt è getsockopt, sò stati spustati in NTDLL è u driver afd.sys per cunfurmà cù l'architettura Windows.
    • I schedarii di basa di dati di a rete di u vinu, cum'è /etc/protocols è /etc/networks, sò avà stallati in u cartulare di travagliu Wine, invece di accede à basa di dati Unix simili.
  • Piattaforme alternative
    • Aghjunghje supportu per l'equipaggiu Apple basatu nantu à chips M1 ARM (Apple Silicon).
    • U supportu per e funzioni BCrypt è Secur32 in macOS necessita avà l'installazione di a libreria GnuTLS.
    • Eseguibili 32-bit per e plataforme ARM sò avà custruitu in u modalità Thumb-2, simili à Windows. Un preloader hè adupratu per carricà tali schedari.
    • Per e piattaforme ARM 32-bit, u supportu per l'eccezzioni di sbulicà hè statu implementatu.
    • Per FreeBSD, u numeru di dumande supportate per l'infurmazioni di u sistema di livellu bassu, cum'è u statutu di memoria è u livellu di carica di a bateria, hè statu allargatu.
  • Applicazioni integrate è strumenti di sviluppu
    • L'utilità reg.exe hà aghjustatu supportu per viste di registru 32 è 64-bit. Aghjunghje supportu per a copia di e chjave di u registru.
    • L'utilità WineDump hà aghjustatu supportu per u dumping di metadati di Windows è a visualizazione di informazioni dettagliate nantu à e entrate CodeView.
    • U Wine Debugger (winedbg) furnisce a capacità di debug processi 32-bit da un debugger 64-bit.
    • A capacità di carricà e biblioteche integrate in i fugliali PE hè stata aghjunta à u compilatore IDL (widl), u supportu per l'attributi è e custruzzioni specifichi di WinRT hè statu furnitu, è una ricerca di biblioteca specifica per a piattaforma hè stata implementata.
  • Sistema di assemblea
    • In cartulari specifichi di l'architettura, e biblioteche sò avà salvate cù nomi chì riflettenu l'architettura è u tipu eseguibile, cum'è "i386-windows" per u formatu PE è "x86_64-unix" per e librerie Unix, chì permettenu supportu per diverse architetture in un vinu unicu. installazione è furnisce una compilazione incruciata di Winelib.
    • Per stabilisce una opzione in l'intestazione di i fugliali PE chì cuntrolla a transizione à l'usu di DLL nativi, a bandiera "--prefer-native option" hè stata aghjunta à winebuild (a trasfurmazioni DLL_WINE_PREATACH in DllMain hè stata fermata).
    • Added supportu per a versione 4 di u furmatu di dati di debug Nanu, chì hè oghji utilizatu per automaticamente quandu custruisce e librerie Wine.
    • Aggiunta l'opzione di creazione '—enable-build-id' per salvà identificatori unichi di custruzzione in i fugliali eseguibili.
    • Aghjunghje supportu per aduprà u compilatore Clang in u modu di cumpatibilità MSVC.
  • Разное
    • I nomi di cartulari tipici in a cunchiglia d'utilizatore (Windows Shell) sò dati à u schema utilizatu cuminciendu cù Windows Vista, i.e. Invece di "I mo documenti", un annuariu "Documenti" hè avà creatu, è a maiò parte di e dati sò salvate in u cartulare "AppData".
    • U supportu per a specificazione OpenCL 1.2 hè statu aghjuntu à a capa di biblioteca OpenCL.
    • U driver WinSpool hà aghjustatu supportu per diverse dimensioni di pagina durante a stampa.
    • Aggiuntu supportu iniziale per MSDASQL, u fornitore Microsoft OLE DB per i driver ODBC.
    • U mutore Wine Mono cù l'implementazione di a piattaforma .NET hè stata aghjurnata per liberà 7.0.0.
    • I dati Unicode sò stati aghjurnati à a specificazione Unicode 14.
    • L'arbulu di l'urighjini includenu e librerie Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt è Zlib, chì sò compilati in formatu PE è ùn necessitanu micca una versione in formatu Unix. À u listessu tempu, queste librerie ponu ancu esse impurtate da u sistema per utilizà l'assemblee esterne invece di l'opzioni PE integrate.

Source: opennet.ru

Add a comment