Rilascio stabile di Wine 5.0

Dopo un anno di sviluppo e 28 versioni sperimentali presentato il rilascio stabile dell'implementazione open source dell'API Win32 — Wine 5.0, che ha incorporato oltre 7400 modifiche. Tra i risultati principali della nuova versione c'è la fornitura di moduli Wine in formato PE, il supporto per configurazioni a più monitor, una nuova implementazione dell'API audio XAudio2 e il supporto per l'API grafica Vulkan 1.1.

In Wine è confermato funziona perfettamente con 4869 (un anno fa 4737) programmi per Windows, altri 4136 (un anno fa 4045) programmi funzionano bene con impostazioni aggiuntive e DLL esterne. 3635 programmi presentano piccole problematiche, che non ostacolano l'utilizzo delle funzionalità principali delle applicazioni.

Le chiave novità Wine 5.0:

  • Moduli in formato PE
    • Con un compilatore MinGW, la maggior parte dei moduli di Wine ora viene compilata in formato di file eseguibili PE (Portable Executable, usato in Windows) invece di ELF. L'uso del PE risolve problemi relativi al supporto di diverse schemi di protezione della copia, che effettuano la verifica dell'identità dei moduli di sistema su disco e in memoria;
    • I file eseguibili PE ora vengono copiati nella cartella ~/.wine ($WINEPREFIX) invece di utilizzare file DLL fittizi, il che rende il contenuto più simile a una vera installazione di Windows, a costo di un maggiore utilizzo di spazio su disco;
    • I moduli convertiti in formato PE possono utilizzare funzioni di C standard e costanti Unicode (ad esempio, L"abc"); In Wine è stata aggiunta la supporto per il binding con file binari compilati in MinGW, che viene utilizzato per impostazione predefinita al momento della compilazione delle DLL al posto del runtime di MinGW; È stato aggiunto il supporto per il funzionamento con più monitor e schede grafiche, inclusa la possibilità di modificare dinamicamente le impostazioni;
    • Il driver per l'API grafica Vulkan è stato aggiornato per allinearsi alla specifica Vulkan 1.1.126;
  • Sottosistema grafico
    • Nella libreria WindowsCodecs è stata implementata la possibilità di convertire formati raster aggiuntivi, inclusi formati con palette indicizzate;
    • Durante l'esecuzione di applicazioni a schermo intero Direct3D è stato garantito il blocco della chiamata del salvaschermo;
    • In DXGI (DirectX Graphics Infrastructure) è stato aggiunto il supporto per informare l'applicazione sulla minimizzazione della finestra, consentendo all'applicazione di ridurre l'esecuzione di operazioni che richiedono molte risorse al momento della minimizzazione della finestra;
  • Direct3D
    • Il supporto per il formato PE facilita ulteriormente l'integrazione delle applicazioni Windows con Wine.
    • L'implementazione è stata ottimizzata per ridurre il consumo di risorse durante l'esecuzione.
    • Per le applicazioni che utilizzano DXGI, è stata implementata la possibilità di passare tra la modalità a schermo intero e la modalità finestra utilizzando la combinazione Alt+Enter;
    • Le funzionalità di implementazione di Direct3D 12 sono state ampliate, ad esempio, è stata aggiunta la possibilità di passare tra la modalità a schermo intero e la modalità finestra, modificare le modalità dello schermo, l'output con scaling e la gestione dell'intervallo di swap dei buffer di rendering;
    • Migliorata la gestione di varie situazioni limite, come l'applicazione di valori di input di test di trasparenza e profondità oltre i limiti consentiti, il rendering con texture e buffer riflessi, l'uso di oggetti DirectDraw non corretti clipper, creazione di dispositivi Direct3 per finestre non valide, utilizzo di aree visibili, valori minimi dei parametri che sono uguali ai massimi, ecc.
    • In Direct3D 8 e 9 è fornito un tracciamento più preciso delle "aree sporche" delle texture caricate;
    • Ridotto il numero di indirizzi richiesti per il caricamento di texture 3D compresse con il metodo S3TC (invece di caricare completamente, le texture vengono caricate a pezzi).
    • Implementato l'interfaccia ID3D11Multithread per la protezione delle sezioni critiche nelle applicazioni multithread;
    • Per le vecchie applicazioni DirectDraw sono stati apportati miglioramenti e correzioni relative al calcolo dell'illuminazione;
    • Implementate chiamate aggiuntive per ottenere informazioni sui shader nell'API ShaderReflection;
    • In wined3d è stata aggiunta la supporto per blitter basato su CPU per l'elaborazione delle risorse compresse;
    • Espansa la banca dati delle schede grafiche riconosciute in Direct3D;
    • Aggiunti nuovi chiavi di registro HKEY_CURRENT_USER\Software\Wine\Direct3D: «shader_backend» (backend per il lavoro con gli shader: «glsl» per GLSL, «arb» per ARB vertex/fragment e «none» per disattivare il supporto agli shader), «strict_shader_math» (0x1 — attivare, 0x0 — disattivare la trasformazione degli shader Direct3D). Dichiarata obsoleta la chiave «UseGLSL» (utilizzare «shader_backend»);
  • D3DX
    • Implementato il supporto per il meccanismo di compressione delle texture 3D S3TC (S3 Texture Compression);
    • Aggiunte implementazioni corrette per operazioni come riempimento texture e superfici non mappabili (unmappable);
    • Apportati vari miglioramenti e correzioni nel framework di creazione effetti visivi;
  • Nucleo (interfacce del kernel Windows)
    • La maggior parte delle funzioni utilizzate in Kernel32 sono state spostate in
      KernelBase, seguendo le modifiche nell'architettura di Windows;
    • Possibilità di mescolare DLL a 32 e 64 bit nelle directory utilizzate per il caricamento. Garantita l'ignoranza delle librerie che non corrispondono all'attuale architettura (32/64), nel caso in cui più avanti nel percorso si riesca a trovare una libreria corretta per l'architettura in uso;
    • Per i driver dei dispositivi, migliorata l'emulazione degli oggetti di kernel;
    • Implementati oggetti di sincronizzazione a livello di kernel, come spinlock, mutex veloci e variabili allocate a risorse;
    • Garantita una corretta informazione alle applicazioni sullo stato della batteria;
  • Interfaccia utente e integrazione con il desktop
    • Le finestre minimizzate ora vengono visualizzate utilizzando un'intestazione anziché un'icona in stile Windows 3.1;
    • Aggiunti nuovi stili per i pulsanti SplitButton (pulsante con un menu a discesa di azioni) e Command Links (collegamenti nelle finestre di dialogo utilizzati per passare alla fase successiva);
    • Per le cartelle 'Downloads' e 'Templates' create link simbolici che puntano alle corrispondenti directory nei sistemi Unix;
  • Dispositivi di input
    • All'avvio garantita l'installazione e il caricamento dei necessari driver per dispositivi Plug & Play;
    • Migliorata la compatibilità con i controller di gioco, inclusi mini-joystick (hat switch), volante, pedali per acceleratore e freni.
    • Sospesa la compatibilità con le vecchie API di Linux per l'interazione con i joystick, usata nei kernel Linux precedenti alla versione 2.2;
  • .NET
    • Il motore Mono è stato aggiornato alla versione 4.9.4 e include ora parti del framework Windows Presentation Foundation (WPF);
    • Aggiunta la possibilità di installare estensioni con Mono e Gecko in una singola cartella comune, con i file posizionati nella gerarchia /usr/share/wine anziché copiati in nuovi prefissi;
  • Funzionalità di rete
    • Il motore del browser Wine Gecko, utilizzato nella libreria MSHTML, è stato aggiornato alla versione 2.47.1. Implementato il supporto per le nuove API HTML;
    • In MSHTML implementato il supporto per gli elementi SVG;
    • Aggiunte molte nuove funzioni VBScript (ad esempio, gestori di errori e eccezioni, funzioni Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* e ScriptTypeComp_Bind* ecc.);
    • Garantita la persistenza dello stato del codice in VBScript e JScript (script persistence);
    • Aggiunta la prima implementazione del servizio HTTP (WinHTTP) e dell'API associata (HTTPAPI) per applicazioni client e server, che inviano e ricevono richieste tramite il protocollo HTTP;
    • Implementata la possibilità di ricevere parametri di configurazione HTTP proxy tramite DHCP;
    • Aggiunta la supporto per il reindirizzamento delle richieste di autenticazione tramite il servizio Microsoft Passport;
  • Crittografia
    • Implementato il supporto per chiavi crittografiche basate su curve ellittiche (ECC) utilizzando GnuTLS;
    • Aggiunta la possibilità di importare chiavi e certificati da file in formato PFX;
    • Aggiunto il supporto per lo schema di generazione della chiave basato su password PBKDF2;
  • Testo e caratteri
    • Nell'implementazione dell'API DirectWrite è stato aggiunto il supporto per le funzionalità OpenType relative a posizionamento dei glifi, che sono abilitati per impostazione predefinita per la scrittura latina, inclusa la gestione del kerning;
    • Aumentata la sicurezza nella gestione dei dati dei font tramite la verifica della correttezza delle varie tabelle dati prima del loro utilizzo;
    • Le interfacce DirectWrite sono state aggiornate per essere compatibili con il nuovo SDK;
  • Audio e video
    • Proposta una nuova implementazione dell'API audio XAudio2, basata sul progetto con le librerie audio DirectX (API XAudio2, X3DAudio, XAPO e XACT3) aggiornate alla versione 20.06;. L'uso di FAudio in Wine consente una qualità audio superiore nei giochi e l'abilitazione di funzionalità come il mixaggio del volume e effetti sonori avanzati;
    • Aggiunti un gran numero di nuove chiamate all'implementazione del framework Media Foundation, inclusa la supporto per code asincrone incorporate e personalizzate, Source Reader API, Media Session, ecc.
    • Il filtro di acquisizione video è stato aggiornato per utilizzare le API v4l2 invece delle API v4l1, ampliando la gamma di telecamere supportate;
    • Rimossi i decoder integrati AVI, MPEG-I e WAVE, ora sostituiti da GStreamer o QuickTime di sistema;
    • Aggiunto un sottoinsieme delle API di configurazione VMR7;
    • Aggiunto il supporto per la regolazione del volume dei singoli canali nei driver audio;
  • Internazionalizzazione
    • Le tabelle Unicode sono state aggiornate alla versione 12.1.0;
    • Implementato il supporto per la normalizzazione Unicode;
    • Impostata automaticamente la regione geografica (HKEY_CURRENT_USER\Control Panel\International\Geo) in base alla locale corrente;
  • RPC/COM
    • Aggiunto supporto per strutture complesse e array nella typelib;
    • Aggiunta un'implementazione iniziale della libreria runtime Windows Script;
    • Aggiunta un'implementazione iniziale della libreria ADO (Microsoft ActiveX Data Objects);
  • Installer
    • Implementato il supporto per la consegna di patch (Patch Files) per l'installer MSI;
    • Nell'utilità WUSA (Windows Update Standalone Installer) è stata aggiunta la possibilità di installare aggiornamenti in formato .MSU;
  • Piattaforma ARM
    • Per l'architettura ARM64, ntdll ha aggiunto il supporto per il ripristino dello stack (stack unwinding). Aggiunto il supporto per le librerie esterne libunwind;
    • Implementato il supporto per proxy senza stub (stubless proxies) per le interfacce degli oggetti per l'architettura ARM64;
  • Strumenti per lo sviluppo / Winelib
    • È stata aggiunta la possibilità di utilizzare il debugger di Visual Studio per il debug remoto delle applicazioni eseguite in Wine;
    • La libreria DBGENG (Debug Engine) è stata parzialmente implementata;
    • I file eseguibili compilati per Windows non dipendono più da libwine, permettendo così di eseguirli in Windows senza dipendenze aggiuntive;
    • Nel Resource Compiler e nell'IDL Compiler è stata aggiunta l'opzione ‘—sysroot’ per specificare il percorso delle intestazioni;
    • In winegcc sono state aggiunte le opzioni ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ e ‘-fuse-ld’, per semplificare la configurazione dell'ambiente per il cross-compiling;
  • Applicazioni integrate
    • È stata implementata l'utilità CHCP per configurare la codifica della console;
    • È stata implementata l'utilità MSIDB per la manipolazione dei database in formato MSI;
  • Ottimizzazione delle prestazioni
    • Diverse funzionalità relative al tempo sono state migrate all'uso di funzioni di sistema ad alte prestazioni per i timer, riducendo così il sovraccarico nel ciclo di rendering di molti giochi;
    • È stata aggiunta la possibilità di utilizzare il file system Ext4 in modalità senza distinzione tra maiuscole e minuscole;
    • È stata effettuata un'ottimizzazione delle prestazioni nel trattamento di un gran numero di elementi nei dialoghi di output delle liste, che operano in modalità LBS_NODATA;
    • È stata aggiunta un'implementazione più veloce dei blocchi SRW (Slim Reader/Writer) per Linux, migrata su Futex;
  • Dipendenze esterne
    • Per la compilazione dei moduli in formato PE è stato utilizzato il cross-compilatore MinGW-w64;
    • L'implementazione di XAudio2 richiede la libreria FAudio;
    • Per monitorare le modifiche ai file sui sistemi BSD
      è stata utilizzata la libreria Inotify;
    • Per la gestione delle eccezioni sulla piattaforma ARM64 è necessaria la libreria Unwind;
    • Invece di Video4Linux1 ora è richiesta la libreria Video4Linux2.

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