Rilascio stabile di Wine 10.0

Dopo un anno di sviluppo e 29 versioni sperimentali, è stata presentata la versione stabile dell'implementazione open source dell'API Win32 — Wine 10.0, che include oltre 6000 modifiche. Tra i principali risultati della nuova versione si evidenzia il supporto completo per l'architettura ARM64EC, la scalabilità sugli schermi ad alta densità di pixel, l'inclusione predefinita del driver Wayland, l'implementazione di pannelli per la configurazione dello schermo e del joystick, un backend multimediale alternativo basato su FFmpeg, un driver Bluetooth, il supporto per Vulkan 1.4 e la capacità di emulare il cambio delle modalità video.

In Wine è confermato il pieno funzionamento di 5372 programmi per Windows (un anno fa erano 5336, due anni fa 5266, tre anni fa 5156); ulteriori 4435 programmi (un anno fa 4397, due anni fa 4370, tre anni fa 4312) funzionano perfettamente con configurazioni aggiuntive e DLL esterne. Per 4020 programmi (un anno fa 3943, due anni fa 3888, tre anni fa 3813) si riscontrano piccoli problemi di funzionamento che non compromettono l'utilizzo delle funzioni principali delle applicazioni.

Novità chiave di Wine 10.0:

  • ARM64
    • È garantito il supporto completo per l'architettura ARM64EC (ARM64 Emulation Compatible), il livello di supporto in Wine ha raggiunto la parità con l'architettura ARM64. L'architettura ARM64EC è stata sviluppata per semplificare il porting di applicazioni originariamente scritte per sistemi x86_64 su sistemi ARM64, consentendo l'esecuzione di moduli separati con codice x86_64 in un ambiente ARM64 tramite emulatore.
    • È stato implementato un supporto completo per il formato di file PE ARM64X, che consente di combinare in un unico file eseguibile codice per le architetture ARM64EC e ARM64. Per compilare Wine in formato ARM64X è necessario installare LLVM da Git (la funzionalità necessaria sarà inclusa nella versione 20 di LLVM) e, al momento dell'esecuzione dello script "configure", specificare l'opzione "—enable-archs=arm64ec,aarch64".
    • È stato realizzato un'interfaccia per emulare sistemi a 64 bit x86. Utilizzando ARM64EC, Wine stesso viene eseguito così com'è, mentre l'emulazione viene applicata solo al codice delle applicazioni x86-64. La libreria con l'emulatore non è ancora inclusa nella versione principale di Wine, ma per eseguire codice x86-64 in un ambiente ARM64 è possibile utilizzare un emulatore esterno FEX, compilato con supporto ARM64EC.
    • Per supportare l'ARM64 è necessario che il sistema utilizzi pagine di memoria di dimensione 4 KB, come richiesto dall'ABI Windows (l'esecuzione in ambienti con kernel Linux che utilizzano pagine di memoria da 16K o 64K non è ancora supportata).
  • Sottosistema grafico
    • È stata implementata una scalabilità più precisa sugli schermi ad alta densità di pixel (High-DPI). È stata fornita la supporto per la modalità DPI Awareness per organizzare la visualizzazione delle applicazioni su schermi ad alta densità di pixel, tenendo conto se l'applicazione supporta o meno l'adattamento ai cambiamenti di DPI (le applicazioni che non considerano il DPI vengono scalate automaticamente). Sono state aggiunte opzioni per sovrascrivere il supporto High-DPI legato a singole applicazioni o prefissi Wine.
    • Nel driver per l'API grafica Vulkan è stato aggiunto il supporto per la specifica Vulkan 1.4 (in Wine 9.0 veniva supportato Vulkan 1.3.272). È stato aggiunto il supporto per le estensioni Vulkan per la codifica e la decodifica video.
    • Utilizzando il backend X11, è stata implementata la possibilità di disegnare finestre figlie Vulkan per applicazioni che utilizzano tali finestre per la visualizzazione di contenuti 3D (in precedenza, tale possibilità era disponibile solo per OpenGL).
    • Nella libreria GdiPlus è stato aggiunto il supporto meccanismo di collegamento dei caratteri ('Font Linking'), che consente di utilizzare più caratteri nella visualizzazione del testo, se i caratteri separati non coprono tutti i simboli presenti nel testo.
  • Wayland
    • Nella configurazione predefinita è stato attivato il driver winewayland.drv, che consente di utilizzare Wine in ambienti basati sul protocollo Wayland senza l'uso di XWayland e componenti X11. Wine avvia le applicazioni di default su Wayland direttamente solo se XWayland non è disponibile, altrimenti l'avvio con XWayland rimane prioritario. Per forzare l'uso di Wayland, è possibile utilizzare la variabile d'ambiente DISPLAY, oppure aggiungere una chiave nel registro, creando un file file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] 'Graphics'='wayland' e applicandolo con il comando: $ WINEPREFIX=\/percorso\/al\/prefisso wine regedit \/percorso\/al\/file.reg
    • Nel driver winewayland.drv è stato aggiunto il supporto per OpenGL e buffer di pixel (pBuffer).
    • Sono stati risolti i problemi di posizionamento delle finestre pop-up in ambienti basati su Wayland.
    • Utilizzando Wayland, è stato implementato il supporto per la ripetizione automatica dei tasti quando si tengono premuti i tasti.
  • Integrazione con il desktop
    • Aggiunto un meccanismo sperimentale di emulazione «modesetting», che consente di emulare il cambio delle modalità video senza modificare effettivamente le impostazioni dello schermo. La visibilità del cambiamento della risoluzione dello schermo senza cambiare modalità video viene creata tramite l'estensione e il ridimensionamento delle finestre.
    • Aggiunto un nuovo applet Pannello di Controllo Desktop (desk.cpl) con implementazione dell'interfaccia di gestione delle impostazioni del display (ad esempio, è possibile cambiare la risoluzione virtuale del desktop o configurare i parametri emulati del display).
    • Aggiunta la possibilità di ripristinare le impostazioni dello schermo ai valori predefiniti in caso di impossibilità di ripristinare lo stato dopo una chiusura anomala del processo.
    • Aggiunta la supporto per disattivare la visualizzazione delle icone nella barra di sistema (in «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» è necessario impostare «NoTrayItemsDisplay=1»).
    • Aggiunta la supporto per disattivare i lanciatori di shell (Shell launcher) in modalità desktop (in «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» è necessario impostare «NoDesktop=1»).
  • Direct3D
    • Per il rendering con OpenGL è ora necessaria la supporto di GLSL 1.20, oltre alle estensioni EXT_framebuffer_object e ARB_texture_non_power_of_two. Il supporto del vecchio backend ARB shader e la configurazione OffscreenRenderingMode sono state interrotte.
    • Per Direct3D 9 e versioni precedenti è stato aggiunto un pipeline grafico di funzioni fisse (nelle vecchie versioni di Direct3D erano disponibili solo operazioni grafiche predefinite, non modificabili), implementato con il linguaggio degli shader HLSL che consente di emulare funzioni fisse durante il rendering tramite l'API Vulkan o OpenGL.
    • Nel rendering con Vulkan vengono utilizzate le estensioni Vulkan per modificare dinamicamente lo stato del pipeline grafico, riducendo i blocchi nei giochi.
    • Aggiunto un backend alternativo glsl-vkd3d per gli shader GLSL, che utilizza vkd3d-shader.
    • Fornita una supporto iniziale per la compilazione degli effetti Direct3D, utilizzando vkd3d-shader.
    • Nella libreria D3DX9 è stata implementata la possibilità di generare texture MIP (MipMap) durante il caricamento di texture volumetriche. Aggiunto il supporto per i formati di colore a 64bpp RGBA e 48bpp RGB nelle immagini PNG, nonché per i formati X8L8V8U8, A2W10V10U10, A8P8, V16U16 e Q16W16V16U16.
  • Audio e video
    • Come alternativa al backend basato su GStreamer, è stato implementato un nuovo backend multimediale basato sull'uso di FFmpeg, adatto a supportare il framework Media Foundation. Per attivare il backend alternativo, nella sezione di registro «HKCU\Software\Wine\MediaFoundation» è necessario impostare «DisableGstByteStreamHandler=1».
    • È stata migliorata l'implementazione dell'API Media Foundation, che ora si integra meglio con le applicazioni che dipendono dai componenti di demultiplexing e decodifica.
    • Nel API DirectMusic è stato aggiunto il supporto per il caricamento di file MIDI.
  • Dispositivi di input
    • È stata aggiunta una versione iniziale del driver Bluetooth.
    • È stato aggiunto l'applet Pannello di controllo Joystick (joy.cpl) con l'implementazione delle impostazioni per il joystick.
    • Sono stati apportati miglioramenti relativi ai dispositivi di puntamento (touchpad, mouse) che utilizzano il protocollo HID (Human Interface Device). È stato aggiunto il driver mouhid.sys per i dispositivi HID. È stata implementata una corretta analisi dei dispositivi di input complessi e garantita la trasmissione delle informazioni su di essi alle applicazioni Windows come su dispositivi separati.
    • Per il backend X11 è stato aggiunto il supporto per i touchscreen e implementata la possibilità di utilizzare la modalità multitouch tramite l'elaborazione dei messaggi WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE, ecc.).
    • È stata realizzata la posizionamento di alcune strutture interne della libreria user32 nella memoria condivisa, migliorando così le prestazioni e riducendo il carico sul Wine Server.
    • In winex11 è stato aggiunto il supporto per l'elaborazione degli eventi XInput2 legata a finestre specifiche.
    • È stato implementato un supporto corretto per le tastiere con layout Dvorak.
  • Nucleo (interfacce del kernel Windows)
    • È stato aggiunto il supporto per l'elevazione dei privilegi dei processi (a un processo inizialmente avviato come utente normale possono essere concessi privilegi di amministratore). Durante la creazione dei processi server (server di azione msi), così come dei processi che chiamano le funzioni RtlCreateUserProcess() e CreateProcessInternal(), viene utilizzato per impostazione predefinita un token amministrativo limitato.
    • Nel recupero delle informazioni sulle etichette dei dischi, ora si cerca, se possibile, di accedere ai servizi di sistema tramite DBus, invece di tentare l'accesso diretto al dispositivo.
    • Il meccanismo di interazione tra processi (IPC) Mailslots è ora implementato direttamente nel Wine server, consentendo un supporto completo della semantica di Windows.
    • È stata implementata l'attesa degli eventi della porta seriale in modalità asincrona.
    • Aggiunta la piena supporto per le estensioni di processore XSTATE nei contesti dei thread, che consente l'uso di nuove estensioni vettoriali come AVX-512.
  • Applicazioni integrate
    • Riscritto il motore di elaborazione dei dati in ingresso utilizzato nell'interprete di comandi cmd.exe. In cmd.exe è stato aggiunto il supporto per le operazioni «||» e «&&».
    • Nell'utilità findstr è stato aggiunto il supporto per le espressioni regolari e la ricerca senza distinzione tra maiuscole e minuscole.
    • Nelle utilità regsvr32 e rundll32 è stata aggiunta la possibilità di registrare moduli ARM64EC.
    • Aggiunte utilità: sort per ordinare i dati in ingresso, fc per confrontare file e where per cercare file.
    • Nell'applicazione wmic è stata implementata la modalità di lavoro interattivo.
    • In Explorer è stato aggiunto il supporto opzionale per il menu di avvio e la barra degli strumenti. Garantito l'avvio di explorer.exe con privilegi ridotti.
  • Strumenti per sviluppatori
    • In winebuild è stata aggiunta l'opzione «-marm64x» per generare librerie ibride ARM64X.
    • In winegcc è stata aggiunta l'opzione «-marm64x», che consente la compilazione per ARM64X.
    • Nei file generati usando il linguaggio di descrizione delle interfacce IDL (Interface Definition Language), sono stati utilizzati componenti che supportano completamente l'esecuzione in modalità di interpretazione.
    • Nel compilatore del linguaggio di descrizione dell'interfaccia IDL (Interface Definition Language) è stata aggiunta la supporto per la generazione di librerie di tipi (TypeLib) nel formato obsoleto (SLTG).
    • Nell'utilità winedump è stata aggiunta la supporto per il salvataggio dei dump delle tabelle minidump, delle informazioni sulle eccezioni C++ e delle risorse typelib.
  • Varie
    • È stato migliorato il supporto per il protocollo di scambio delle chiavi Diffie-Hellman (DH). È stata aggiunta la possibilità di configurare e recuperare i parametri DH. Sono stati implementati gestori per la creazione di coppie di chiavi pubbliche e private.
    • Garantito l'uso del padding OAEP (Optimal Asymmetric Encryption Padding) insieme all'algoritmo RSA.
    • Nell'API DirectPlay è stato implementato il supporto per le sessioni di rete.
    • Stabilita la gestione degli stati di input/output asincroni quando si lavora in modalità WoW64 (Windows-on-Windows a 64 bit), che consente l'esecuzione di applicazioni Windows a 32 bit su sistemi Unix a 64 bit.
    • Aggiunto il supporto per il caricamento di driver ODBC per i database compilati per Windows.
    • Per la piattaforma ARM è stato implementato il pieno supporto per RPC/COM, C++ RTTI (Run-Time Type Information) ed eccezioni C++.
    • Nel runtime C è stato implementato il supporto per la codifica UTF-8 nelle funzioni ANSI.
    • Sono state ampliate le capacità del motore MSHTML. È stata aggiunta la supporto per prototipi e costruttori di oggetti. Un nuovo interfaccia di collegamento degli oggetti è stato introdotto nel motore JavaScript per MSHTML. Le funzioni integrate di MSHTML sono state convertite in corretti oggetti JavaScript. È migliorato il garbage collector per JavaScript, che ora copre tutti i contesti di esecuzione degli script nel thread. È stata aggiunta la supporto per gli oggetti JavaScript ArrayBuffer e DataView.
    • È stata aggiunta la supporto all'analisi statica utilizzando Clang e ai report sui test JUnit nel sistema di integrazione continua basato su Gitlab.
    • È stata integrata la libreria Capstone 5.0.3, attraverso la quale è stato implementato il disassemblaggio nel debugger WineDb.
    • Aggiornati alla nuova versione i componenti: 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 e Zlib 1.3.1.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster