Versione stabile di Wine 5.0

Dopo un anno di sviluppo e 28 versioni sperimentali presentata rilascio stabile di un'implementazione aperta dell'API Win32 - Vino 5.0, che includeva più di 7400 modifiche. I principali risultati della nuova versione includono la fornitura di moduli Wine integrati in formato PE, il supporto per configurazioni multi-monitor, una nuova implementazione dell'API audio XAudio2 e il supporto per l'API grafica Vulkan 1.1.

Nel vino confermato pieno funzionamento di 4869 programmi (un anno fa 4737) per Windows, altri 4136 programmi (un anno fa 4045) funzionano perfettamente con impostazioni aggiuntive e DLL esterne. 3635 programmi presentano problemi minori di prestazioni che non interferiscono con l'utilizzo delle funzioni di base dell'applicazione.

Chiave innovazioni Vino 5.0:

  • Moduli in formato PE
    • Con il compilatore MinGW, la maggior parte dei moduli Wine sono ora costruiti nel formato di file eseguibile PE (Portable Executable, utilizzato su Windows) anziché ELF. L'uso di PE risolve i problemi relativi al supporto di vari schemi di protezione dalla copia che verificano l'identità dei moduli di sistema su disco e in memoria;
    • Gli eseguibili PE vengono ora copiati nella directory ~/.wine ($WINEPREFIX) invece di utilizzare file DLL fittizi, rendendo il tutto più simile alle installazioni Windows reali, al costo di consumare spazio su disco aggiuntivo;
    • I moduli convertiti in formato PE possono utilizzare standard wchar Funzioni e costanti C con Unicode (ad esempio L"abc");
    • Il runtime di Wine C ha aggiunto il supporto per il collegamento con i binari integrati in MinGW, che viene utilizzato per impostazione predefinita al posto del runtime MinGW durante la creazione di DLL;
  • Sottosistema grafico
    • Aggiunto supporto per lavorare con più monitor e adattatori grafici, inclusa la possibilità di modificare dinamicamente le impostazioni;
    • Il driver per l'API grafica Vulkan è stato aggiornato per conformarsi alla specifica Vulkan 1.1.126;
    • La libreria WindowsCodecs offre la possibilità di convertire formati raster aggiuntivi, inclusi formati con una tavolozza indicizzata;
  • Direct3D
    • Quando si eseguono applicazioni Direct3D a schermo intero, la chiamata allo screen saver viene bloccata;
    • DXGI (DirectX Graphics Infrastructure) ha aggiunto il supporto per informare un'applicazione quando la sua finestra è ridotta a icona, il che consente all'applicazione di ridurre le prestazioni delle operazioni ad uso intensivo di risorse quando si riduce a icona la finestra;
    • Per le applicazioni che utilizzano DXGI, è ora possibile passare dalla modalità a schermo intero a quella a finestra utilizzando la combinazione Alt+Invio;
    • Le funzionalità dell'implementazione Direct3D 12 sono state ampliate, ad esempio ora è disponibile il supporto per il passaggio dalla modalità a schermo intero a quella a finestra, la modifica delle modalità dello schermo, il ridimensionamento dell'output e la gestione dell'intervallo di sostituzione del buffer di rendering (intervallo di scambio);
    • Gestione migliorata di varie situazioni limite, come l'utilizzo di valori di input fuori intervallo per test di trasparenza e profondità, il rendering con texture e buffer riflessi e l'utilizzo di oggetti DirectDraw errati clip, creando dispositivi Direct3 per finestre errate, utilizzando aree visibili i cui valori minimi dei parametri sono uguali al massimo, ecc.
    • Direct3D 8 e 9 forniscono un tracciamento più accurato "sporco» aree di texture caricate;
    • La dimensione dello spazio di indirizzi richiesto durante il caricamento di texture 3D compresse utilizzando il metodo S3TC è stata ridotta (invece di essere caricate interamente, le texture vengono caricate in blocchi).
    • Interfaccia implementata ID3D11Multithread per proteggere le sezioni critiche nelle applicazioni multi-thread;
    • Sono stati apportati vari miglioramenti e correzioni relativi ai calcoli dell'illuminazione per le vecchie applicazioni DirectDraw;
    • Implementate chiamate aggiuntive per ottenere informazioni sugli shader nell'API ShaderReflection;
    • wined3d ora supporta blitter Basato su CPU per l'elaborazione di risorse compresse;
    • Il database delle schede grafiche riconosciute in Direct3D è stato ampliato;
    • Aggiunte nuove chiavi di registro HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (backend per lavorare con gli shader: “glsl” per GLSL, “arb” per ARB vertex/fragment e “none” per disabilitare il supporto shader), “strict_shader_math” ( 0x1 - abilita, 0x0 - disabilita la conversione dello shader Direct3D). Deprecata la chiave "UseGLSL" (dovrebbe utilizzare "shader_backend");
  • D3DX
    • È stato implementato il supporto per il meccanismo di compressione delle texture 3D S3TC (S3 Texture Compression);
    • Aggiunte implementazioni corrette di operazioni come riempimento texture e superfici non mappabili;
    • Sono stati apportati vari miglioramenti e correzioni al framework di creazione effetti visivi;
  • Kernel (interfacce del kernel di Windows)
    • La maggior parte delle funzioni usate nel Kernel32 sono state spostate in
      KernelBase, a seguito dei cambiamenti nell'architettura di Windows;

    • Possibilità di combinare DLL a 32 e 64 bit nelle directory utilizzate per il caricamento. Garantisce che le librerie che non corrispondono alla profondità di bit corrente vengano ignorate (32/64), nel caso in cui più avanti nel percorso sia possibile trovare una libreria corretta per la profondità di bit corrente;
    • Per i driver dei dispositivi, è stata migliorata l'emulazione degli oggetti del kernel;
    • Oggetti di sincronizzazione implementati che funzionano a livello di kernel, come spin lock, mutex veloci e variabili collegate a una risorsa;
    • Garantisce che le applicazioni siano correttamente informate sullo stato della batteria;
  • Interfaccia utente e integrazione desktop
    • Le finestre ridotte a icona vengono ora visualizzate utilizzando una barra del titolo anziché un'icona in stile Windows 3.1;
    • Aggiunti nuovi stili di pulsanti Pulsante Dividi (pulsante con un elenco a discesa di azioni) e Collegamenti di comando (link nelle finestre di dialogo utilizzati per passare alla fase successiva);
    • Per le cartelle “Downloads” e “Templates” sono stati creati collegamenti simbolici che puntano alle directory corrispondenti sui sistemi Unix;
  • Dispositivi di input
    • All'avvio vengono installati e caricati i driver del dispositivo Plug & Play necessari;
    • Supporto migliorato per i controller di gioco, incluso un mini-joystick (interruttore a cappello), volante, pedali dell'acceleratore e del freno.
    • Il supporto per la vecchia API del joystick Linux utilizzata nei kernel Linux precedenti alla versione 2.2 è stato interrotto;
  • .NET
    • Il motore Mono è stato aggiornato alla versione 4.9.4 e ora include parti del framework Windows Presentation Foundation (WPF);
    • Aggiunta la possibilità di installare componenti aggiuntivi con Mono e Gecko in una directory comune, posizionando i file nella gerarchia /usr/share/wine invece di copiarli su nuovi prefissi;
  • Funzionalità di rete
    • Il motore del browser Wine Gecko, utilizzato nella libreria MSHTML, è stato aggiornato alla versione 2.47.1. È stato implementato il supporto per le nuove API HTML;
    • MSHTML ora supporta gli elementi SVG;
    • Aggiunte molte nuove funzioni VBScript (ad esempio, gestori di errori ed eccezioni, funzioni Ora, Giorno, Mese, Stringa, LBound, RegExp.Replace, РScriptTypeInfo_* e ScriptTypeComp_Bind*, ecc.);
    • Fornita conservazione dello stato del codice in VBScript e JScript (persistenza dello script);
    • Aggiunta una prima implementazione del servizio HTTP (WinHTTP) e delle API associate (HTTPAPI) per applicazioni client e server che inviano e ricevono richieste utilizzando il protocollo HTTP;
    • Implementata la possibilità di ottenere le impostazioni del proxy HTTP tramite DHCP;
    • Aggiunto supporto per reindirizzare le richieste di autenticazione tramite il servizio Microsoft Passport;
  • crittografia
    • Implementato il supporto per le chiavi crittografiche a curva ellittica (ECC) quando si utilizza GnuTLS;
    • Aggiunta la possibilità di importare chiavi e certificati da file in formato PFX;
    • Aggiunto supporto per lo schema di generazione delle chiavi basato sulla password PBKDF2;
  • Testo e caratteri
    • L'implementazione dell'API DirectWrite ha aggiunto il supporto per le funzionalità OpenType correlate a posizionamento dei glifi, abilitati per impostazione predefinita per lo stile latino, inclusa la crenatura;
    • Maggiore sicurezza per l'elaborazione dei dati dei font controllando la correttezza delle varie tabelle di dati prima di utilizzarle;
    • Le interfacce DirectWrite sono state allineate all'SDK più recente;
  • Suono e video
    • È stata proposta una nuova implementazione dell'API audio XAudio2, realizzato sulla base del progetto Faudio. L'uso di FAudio in Wine ti consente di ottenere una qualità audio più elevata nei giochi e di utilizzare funzionalità come il mixaggio del volume e gli effetti sonori avanzati;
    • Un gran numero di nuove chiamate sono state aggiunte all'implementazione del framework Media Foundation, incluso il supporto per code asincrone integrate e personalizzate, API Source Reader, Media Session, ecc.
    • Il filtro di acquisizione video è stato passato all'utilizzo dell'API v4l2 invece dell'API v4l1, che ha ampliato la gamma di telecamere supportate;
    • Sono stati rimossi i decoder AVI, MPEG-I e WAVE integrati, al posto dei quali vengono ora utilizzati il ​​sistema GStreamer o QuickTime;
    • Aggiunto un sottoinsieme di API di configurazione VMR7;
    • Aggiunto supporto per regolare il volume dei singoli canali sui driver audio;
  • Internazionalizzazione
    • Tabelle Unicode aggiornate alla versione 12.1.0;
    • Supporto implementato per la normalizzazione Unicode;
    • Fornita installazione automatica della regione geografica (HKEY_CURRENT_USER\Control Panel\International\Geo) in base alla locale corrente;
  • RPC/COM
    • Aggiunto supporto per strutture e array complessi a typelib;
    • Aggiunta l'implementazione iniziale della libreria runtime di Windows Script;
    • Aggiunta l'implementazione iniziale della libreria ADO (Microsoft ActiveX Data Objects);
  • Installatori
    • È stato implementato il supporto per la consegna delle patch (Patch Files) per il programma di installazione MSI;
    • L'utilità WUSA (Windows Update Standalone Installer) ora ha la possibilità di installare gli aggiornamenti in formato .MSU;
  • Piattaforma ARM
    • Per l'architettura ARM64, è stato aggiunto a ntdll il supporto per lo srotolamento dello stack. Aggiunto supporto per la connessione di librerie libunwind esterne;
    • Per l'architettura ARM64, è stato implementato il supporto per proxy seamless per le interfacce degli oggetti;
  • Strumenti di sviluppo / Winelib
    • Aggiunta la possibilità di utilizzare il debugger di Visual Studio per eseguire il debug remoto delle applicazioni in esecuzione in Wine;
    • La libreria DBGENG (Debug Engine) è stata parzialmente implementata;
    • I file binari compilati per Windows non dipendono più da libwine, consentendo loro di essere eseguiti su Windows senza dipendenze aggiuntive;
    • Aggiunta l'opzione '--sysroot' al compilatore di risorse e al compilatore IDL per determinare il percorso dei file di intestazione;
    • Aggiunte le opzioni "—target", "—wine-objdir", "—wine-objdir" a winegcc
      ‘—winebuild’ e ‘-fuse-ld’, che semplificano la configurazione dell’ambiente per la compilazione incrociata;

  • Applicazioni incorporate
    • Implementata un'utilità CHCP per configurare la codifica della console;
    • Implementata l'utility MSIDB per la manipolazione dei database in formato MSI;
  • Ottimizzazione delle prestazioni
    • Varie funzioni di temporizzazione sono state trasferite per utilizzare funzioni di timer di sistema ad alte prestazioni, riducendo il sovraccarico nel ciclo di rendering di molti giochi;
    • Aggiunta la possibilità di utilizzare Ext4 in FS regime lavorare senza distinzione tra maiuscole e minuscole;
    • Sono state ottimizzate le prestazioni di elaborazione di un gran numero di elementi nelle finestre di dialogo di visualizzazione elenco che operano in modalità LBS_NODATA;
    • Aggiunta un'implementazione più rapida dei blocchi SRW (Slim Reader/Writer) per Linux, tradotti in Futex;
  • Dipendenze esterne
    • Per assemblare i moduli in formato PE viene utilizzato il cross-compiler MinGW-w64;
    • L'implementazione di XAudio2 richiede la libreria FAudio;
    • Per tenere traccia delle modifiche ai file sui sistemi BSD
      viene utilizzata la libreria Inotify;

    • Per gestire le eccezioni sulla piattaforma ARM64, è necessaria la libreria Unwind;
    • Invece di Video4Linux1, ora è richiesta la libreria Video4Linux2.

Fonte: opennet.ru

Aggiungi un commento