Il 21 gennaio 2020 è stato rilasciato ufficialmente la versione stabile — uno strumento gratuito per eseguire programmi Windows nativi in un ambiente UNIX. Questa è una realizzazione 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 separate. Il principale sviluppatore Alexandre Julliard evidenzia quattro:
- Supporto per moduli in formato PE. Questo risolve problemi con vari schemi di protezione dalla copia, che confrontano i moduli di sistema su disco e in memoria.
- Supporto per più monitor e più GPU, inclusa la modifica dinamica delle impostazioni.
- Reimplementazione di XAudio2 basata sul progetto FAudio, una realizzazione aperta delle librerie sonore DirectX. Il passaggio a FAudio consente di ottenere una qualità audio superiore nei giochi, utilizzando il mixing del volume, effetti sonori avanzati, ecc.
- Supporto per Vulkan 1.1.
Maggiore dettaglio sulle nuove funzionalità chiave.
Moduli PE
Con un compilatore MinGW, la maggior parte dei moduli Wine ora si compila in formato di file eseguibili PE (Portable Executable, formato binario di Windows) invece di ELF.
I file eseguibili PE vengono ora copiati nella cartella ~/.wine invece di utilizzare file DLL fittizi, il che rende le applicazioni più simili a vere installazioni di Windows.
Al momento non tutti i moduli sono stati convertiti in formato PE. Il lavoro continua.
Sottosistema grafico
Come già detto, è stato aggiunto il supporto per l'uso 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, compresi i formati con palette indicizzata.
Direct3D
Le applicazioni Direct3D a schermo intero ora bloccano la chiamata al salvaschermo.
Per le applicazioni DXGI è stata implementata la possibilità di passare tra la modalità a schermo intero e quella finestra con la combinazione standard Alt+Enter.
Le funzionalità di Direct3D 12 sono state ampliate: supporto per il passaggio tra modalità a schermo intero e finestra, cambiamenti delle modalità dello schermo, visualizzazioni con scalatura e intervalli di sostituzione dei buffer di rendering (swap interval). Tutte queste funzioni sono già state implementate per le versioni precedenti dell'API Direct3D.
I partecipanti al progetto hanno lavorato con attenzione e hanno risolto letteralmente centinaia di bug, migliorando così la gestione delle varie situazioni limite di Wine. Tra esse, il campionamento delle risorse 2D nei campionatori 3D e viceversa, l'uso di valori di input fuori dai range consentiti per i test di trasparenza e profondità, il rendering con texture e buffer riflessi, l'utilizzo di clipper non corretti (oggetto DirectDraw) e molto altro.
Dimensione ridotta dello spazio di indirizzamento necessario per il caricamento delle texture 3D compresse con il metodo S3TC (anziché caricare tutto in una volta, le texture vengono caricate a pezzi).
Per le vecchie applicazioni DirectDraw sono stati apportati vari miglioramenti e correzioni relativi al calcolo dell'illuminazione.
Espansa la base delle schede grafiche riconosciute in Direct3D.
Rete e crittografia
Il motore Gecko è stato aggiornato alla versione 2.47.1 per supportare gli strumenti moderni. È stata implementata una serie di nuove API HTML.
In MSHTML è stato implementato il supporto per gli elementi SVG.
Aggiunte molte nuove funzioni a VBScript (ad esempio, gestori di errori ed eccezioni).
Implementata la possibilità di ricevere parametri di configurazione HTTP proxy attraverso DHCP.
Nella parte crittografica è stato implementato il supporto per le chiavi crittografiche basate su curve ellittiche (ECC) tramite GnuTLS, aggiunta la possibilità di importare chiavi e certificati da file in formato PFX, aggiunto il supporto per lo schema di generazione di chiavi basato su password PBKDF2.
Adobe Photoshop CS6 su Wine
Altre importanti novità
- Supporto per 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.
- Migliorato supporto per l'API Windows Media Foundation.
- Migliore sincronizzazione dei primitivi grazie all'implementazione su futex.
- Condivisione di Wine-Mono per risparmiare spazio anziché implementazione open source di .NET per ciascuno.
~/.wine. - Supporto per Unicode 12.0 e 12.1.
- Implementazione di un servizio HTTP di base (HTTP.sys) come sostituto dell'API Winsock e IIS, con conseguente aumento delle performance rispetto all'API Windows Sockets.
- Migliore compatibilità con i debugger di Windows.
- Miglior supporto per LLVM MinGW e miglioramenti nella cross-compilazione di WineGCC.
Si possono anche menzionare i miglioramenti dell'interfaccia utente. Ad esempio, le finestre ridotte ora vengono visualizzate tramite una barra del titolo, anziché con le icone in stile Windows 3.1. È stato migliorato il supporto per i controller di gioco, compresi hat switch, volante e pedali.
Sono stati rimossi i decoder AVI, MPEG-I e WAVE integrati in Wine, che ora utilizza i sistemi GStreamer o QuickTime.
È stata aggiunta la possibilità di utilizzare il debugger di Visual Studio per il debug remoto delle applicazioni avviate in Wine, è stata parzialmente implementata la libreria DBGENG (Debug Engine) e sono state rimosse le dipendenze dalla libwine nei file compilati per Windows.
Per ottimizzare le prestazioni, diverse funzioni di gestione del tempo sono state modificate per utilizzare funzioni di sistema ad alte prestazioni, riducendo così i sovraccarichi nel ciclo di rendering di molti giochi. Sono state effettuate 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ò supporre che queste applicazioni siano tra le più frequentemente eseguite in Wine.
Nota. Il rilascio di Wine 5.0 è dedicato alla memoria di Józef Kucia, che è tragicamente deceduto ad agosto 2019 all'età di 30 anni mentre esplorava una grotta nel sud della Polonia. Józef è stato un membro importante nello sviluppo di Direct3D per Wine, nonché un autore principale del progetto. Durante il suo lavoro su Wine, ha apportato più di 2500 patch.

Fonte: habr.com
