Il 21 gennaio 2020 è stato ufficialmente rilasciato il versione stabile — uno strumento gratuito per eseguire programmi Windows nativi in ambiente UNIX. È un'implementazione alternativa e gratuita dell'API di Windows. L'acronimo ricorsivo WINE significa 'Wine Is Not an Emulator'.
Dietro a questa versione ci sono circa un anno di sviluppo e oltre 7400 modifiche distinte. Il principale sviluppatore Alexandre Julliard evidenzia quattro aspetti:
- Supporto per moduli in formato PE. Ciò risolve problemi con diverse schemi di protezione dalla copia che verificano i moduli di sistema su disco e in memoria.
- Supporto per più monitor e più GPU, compresa la modifica dinamica delle impostazioni.
- Reimplementazione di XAudio2 basata sul progetto FAudio, un'implementazione open-source delle librerie audio DirectX. Il passaggio a FAudio consente una migliore qualità del suono nei giochi, supporta il mixaggio audio, effetti sonori avanzati, e altro ancora.
- Supporto per Vulkan 1.1.
Ulteriori dettagli sulle principali novità.
Moduli PE
Con un compilatore MinGW, la maggior parte dei moduli di Wine viene ora compilata in formato di file eseguibili PE (Portable Executable, formato binario di Windows) invece di ELF.
I file eseguibili PE vengono ora copiati nella directory ~/.wine anziché utilizzare file DLL fittizi, rendendo le applicazioni più simili a installazioni reali di Windows.
Non tutti i moduli sono ancora stati convertiti nel formato PE. Il lavoro continua.
Sottosistema grafico
Come già accennato, è stata aggiunta la supporto per la gestione di più monitor e schede grafiche.
Il driver Vulkan è stato aggiornato alle specifiche Vulkan 1.1.126.
Inoltre, la libreria WindowsCodecs ora supporta formati raster aggiuntivi, inclusi formati con palette indicizzate.
Direct3D
Le applicazioni Direct3D a schermo intero ora bloccano l'attivazione dello screen saver.
Per le applicazioni DXGI è stata implementata la possibilità di passare dalla modalità a schermo intero a quella finestra utilizzando la combinazione standard Alt+Enter.
Le funzionalità di Direct3D 12 sono state ampliate: supporto per il passaggio tra modalità a schermo intero e finestra, cambio delle modalità schermo, visualizzazione con scaling e intervalli di sostituzione dei buffer di rendering (swap interval). Tutte queste funzionalità sono già state implementate per le versioni precedenti delle API Direct3D.
I partecipanti al progetto hanno lavorato con attenzione, risolvendo letteralmente centinaia di bug, migliorando così la gestione delle diverse situazioni limite di Wine. Tra questi, il campionamento delle risorse 2D nei campionatori 3D e viceversa, l'applicazione di valori di input che superano i limiti consentiti per i test di trasparenza e profondità, il rendering con texture e buffer riflessi, l'uso di clipper non corretti (oggetto DirectDraw) e molto altro.
È stata ridotta la dimensione dello spazio indirizzabile necessario per il caricamento delle texture 3D compresse con il metodo S3TC (invece del caricamento totale, le texture vengono caricate a pezzi).
Per le vecchie applicazioni DirectDraw sono stati apportati vari miglioramenti e correzioni relativi al calcolo dell'illuminazione.
È stata ampliata la base di schede grafiche riconosciute in Direct3D.
Rete e crittografia
Il motore Gecko è stato aggiornato alla versione 2.47.1 per supportare strumenti moderni. È stata implementata una serie di nuove API HTML.
In MSHTML è stata implementata la supporto per gli elementi SVG.
Sono state aggiunte molte nuove funzionalità a VBScript (ad esempio, gestori di errori e eccezioni).
È stata realizzata la possibilità di ottenere i parametri di configurazione HTTP proxy tramite DHCP.
Nella parte crittografica è stata implementata la supporto delle chiavi crittografiche basate su curve ellittiche (ECC) tramite GnuTLS, è stata aggiunta la possibilità di importare chiavi e certificati da file in formato PFX, e introdotta la supporto per lo schema di generazione delle chiavi basato su password PBKDF2.
Adobe Photoshop CS6 su Wine
Altre importanti novità
- Supporto per i spinlock del kernel NT.
- Grazie alla scadenza del brevetto sulla compressione delle texture DXTn e S3, è stato possibile includerle nell'implementazione predefinita.
- Supporto per l'installazione di driver plug-and-play.
- Vari miglioramenti a DirectWrite.
- Migliore supporto per Windows Media Foundation API.
- Migliore sincronizzazione dei primitive grazie all'implementazione con futex.
- Condivisione di Wine-Mono per risparmiare spazio invece dell'implementazione open source di .NET per ogni caso.
~/.wine. - Supporto per Unicode 12.0 e 12.1.
- Implementazione del servizio HTTP iniziale (HTTP.sys) come sostituto dell'API Winsock e di IIS, il che ha portato a prestazioni superiori rispetto all'API Windows Sockets.
- Migliore compatibilità con i debugger Windows.
- Migliore supporto per LLVM MinGW e miglioramenti nel cross-compiling di WineGCC.
È possibile menzionare anche i miglioramenti nell'interfaccia utente. Ad esempio, le finestre ridotte sono ora visualizzate con una barra del titolo, invece di icone in stile Windows 3.1. È stato migliorato il supporto per i controller di gioco, inclusi hat switch, volante e pedali.
Sono stati rimossi i decoder AVI, MPEG-I e WAVE incorporati in Wine, ora vengono utilizzati GStreamer o QuickTime di sistema.
È stata aggiunta la possibilità di utilizzare il debugger di Visual Studio per il debugging remoto delle applicazioni in esecuzione su Wine, è stata parzialmente implementata la libreria DBGENG (Debug Engine), e dalla compilazione di file per Windows è stata rimossa la dipendenza da libwine.
Per ottimizzare le prestazioni, varie funzioni di gestione del tempo sono state convertite per utilizzare funzioni di sistema ad alte prestazioni per il timer, riducendo così gli overhead nel ciclo di rendering di molti giochi. Sono state fatte anche altre ottimizzazioni delle prestazioni.
Per un elenco completo delle modifiche vedere. .
,
Sul sito viene mantenuto un database di applicazioni Windows compatibili con Wine. Ecco i leader per :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Si può ipotizzare che queste applicazioni in Wine vengano avviate più frequentemente.
Nota. Il rilascio di Wine 5.0 è dedicato alla memoria di Józef Kucia, tragicamente scomparso nell'agosto 2019 all'età di 30 anni, mentre esplorava una grotta nel sud della Polonia. Józef è stato un importante contributore allo sviluppo di Direct3D Wine, oltre a essere l'autore principale del progetto. Durante il suo lavoro su Wine ha contribuito con oltre 2500 patch.

Fonte: habr.com
