Rilascio stabile di Wine 5.0

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

In Wine è confermata il corretto funzionamento di 4869 programmi per Windows (rispetto ai 4737 di un anno fa), mentre altri 4136 (rispetto ai 4045 di un anno fa) funzionano perfettamente con ulteriori configurazioni e DLL esterne. Per 3635 programmi si osservano piccoli problemi di funzionamento, che non compromettono l'utilizzo delle funzionalità principali delle applicazioni.

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, utilizzato in Windows) anziché in ELF. L'uso di PE risolve i problemi di supporto per vari schemi di protezione contro la copia, che effettuano il controllo dell'identità dei moduli di sistema su disco e in memoria;
    • I file eseguibili PE vengono ora copiati nella directory ~/.wine ($WINEPREFIX) invece di utilizzare file DLL fittizi, rendendo l'installazione più simile a quelle reali di Windows, a fronte di un maggiore consumo di spazio su disco;
    • I moduli convertiti nel formato PE possono utilizzare le funzioni e le costanti C con Unicode (ad esempio, L»abc»); wchar funzioni C e costanti con unicode (ad esempio, L»abc»);
    • In Wine, il runtime C è stata aggiunta la compatibilità per il linking con file binari compilati in MinGW, che viene utilizzato di default per la compilazione delle DLL invece del runtime MinGW;
  • Sottosistema grafico
    • Aggiunto il supporto per più monitor e schede grafiche, inclusa la possibilità di modificare dinamicamente le impostazioni;
    • Aggiornato il driver per l'API grafica Vulkan, allineato alla specifica Vulkan 1.1.126;
    • Nella libreria WindowsCodecs è stata implementata la possibilità di convertire ulteriori formati raster, inclusi i formati con palette indicizzate;
  • Direct3D
    • Durante l'esecuzione di applicazioni a schermo intero Direct3D viene bloccata l'attivazione del salvaschermo;
    • In DXGI (DirectX Graphics Infrastructure) è stata aggiunta la supporto per informare l'applicazione sulla minimizzazione della sua finestra, consentendo all'applicazione di ridurre l'esecuzione di operazioni ad alta intensità di risorse quando la finestra è ridotta;
    • Per le applicazioni che utilizzano DXGI, è stata implementata la possibilità di passare tra la modalità a schermo intero e in finestra mediante la combinazione Alt+Invio;
    • Ampliate le funzionalità di Direct3D 12, ad esempio, è stata aggiunta la supporto per il passaggio tra modalità a schermo intero e in finestra, cambiamento delle modalità schermo, output con scaling e gestione dell'intervallo di sostituzione dei buffer di rendering (swap interval);
    • Migliorata la gestione di diverse situazioni limite, come l'applicazione di valori di origine che superano le gamme consentite per i test di trasparenza e profondità, rendering con texture e buffer riflessi, utilizzo di oggetti DirectDraw non validi, clipper, creazione di dispositivi Direct3 per finestre non valide, utilizzo di aree visibili con valori minimi dei parametri uguali ai massimi, ecc.
    • In Direct3D 8 e 9 è stato garantito un tracciamento più preciso delle aree “sporche” delle texture caricate;
    • Ridotto lo spazio degli indirizzi richiesto durante il caricamento delle texture 3D compresse con il metodo S3TC (invece di caricare tutto in una volta, le texture vengono caricate a pezzi).
    • Interfaccia implementata ID3D11Multithread per la protezione delle sezioni critiche nelle applicazioni multithreading;
    • Per le vecchie applicazioni DirectDraw, sono stati apportati vari miglioramenti e correzioni relative al calcolo dell'illuminazione;
    • Sono state implementate ulteriori chiamate per ottenere informazioni sugli shader nell'API ShaderReflection;
    • Aggiunta la supporto per un blitter basato su CPU per il trattamento delle risorse compresse;
    • Espansa la banca dati delle schede grafiche riconosciute in Direct3D;
    • Aggiunti nuovi registri 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 degli shader), "strict_shader_math" (0x1 — attivare, 0x0 — disattivare la conversione degli shader Direct3D). Dichiarato obsoleto il registro "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 il riempimento delle texture e superfici non mappabili (unmappable);
    • Sono state apportate diverse migliorie e correzioni al framework di creazione di effetti visivi;
  • Nucleo (interfacce di core di Windows)
    • La maggior parte delle funzioni utilizzate in Kernel32 è stata spostata in
      KernelBase, seguendo le modifiche nell'architettura di Windows;
    • È stata introdotta la possibilità di mescolare DLL a 32 e 64 bit nelle directory utilizzate per il caricamento. È garantito l'ignoro delle librerie non conformi all'attuale architettura (32/64), nel caso in cui successivamente nel percorso venga trovata una libreria corretta per l'architettura attuale;
    • Per i driver di dispositivo, è migliorata l'emulazione degli oggetti del kernel;
    • Sono stati implementati oggetti di sincronizzazione a livello di kernel, come spin-lock, mutex rapidi e variabili assegnabili alle risorse;
    • È stato garantito un corretto aggiornamento delle applicazioni sullo stato della batteria;
  • Interfaccia utente e integrazione con il desktop
    • Le finestre minimizzate ora vengono visualizzate utilizzando un titolo invece che un'icona in stile Windows 3.1;
    • Sono stati aggiunti nuovi stili di pulsanti SplitButton (pulsante con menu a discesa delle azioni) e Command Links (collegamenti nelle finestre di dialogo utilizzati per passare alla fase successiva);
    • Per le cartelle ‘Downloads’ e ‘Templates’ sono stati creati collegamenti simbolici che puntano alle relative directory nei sistemi Unix;
  • Dispositivi di input
    • All'avvio è garantita l'installazione e il caricamento dei driver necessari per i dispositivi Plug & Play;
    • Migliorato il supporto per i controller di gioco, incluso il mini-joystick (hat switch), il volante e i pedali per acceleratore e freno.
    • Interrotta la supporto per la vecchia API Linux per l'interazione con i joystick, utilizzata nei kernel Linux fino 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 componenti aggiuntivi con Mono e Gecko in una cartella comune con i file posizionati nella gerarchia /usr/share/wine anziché copiarli in nuovi prefissi;
  • Funzionalità di rete
    • Il motore di navigazione Wine Gecko, utilizzato nella libreria MSHTML, è stato aggiornato alla versione 2.47.1. Implementato il supporto per le nuove API HTML;
    • In MSHTML è stato implementato il supporto per gli elementi SVG;
    • Aggiunte molte nuove funzionalità a VBScript (ad esempio, gestori di errori ed eccezioni, funzioni Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* e ScriptTypeComp_Bind* e così via);
    • Garantita la persistenza dello stato del codice in VBScript e JScript (script persistence);
    • È stata aggiunta l'implementazione iniziale del servizio HTTP (WinHTTP) e dell'API correlata (HTTPAPI) per applicazioni client e server che inviano e ricevono richieste utilizzando il protocollo HTTP;
    • È stata implementata la possibilità di ottenere i parametri di configurazione del proxy HTTP tramite DHCP;
    • Aggiunta la supporto per il reindirizzamento delle richieste di autenticazione tramite il servizio Microsoft Passport;
  • Crittografia
    • È stato implementato il supporto per le chiavi crittografiche basate su curve ellittiche (ECC) utilizzando GnuTLS;
    • È stata aggiunta la possibilità di importare chiavi e certificati da file in formato PFX;
    • È stato aggiunto il supporto per lo schema di generazione delle chiavi basato sulla password PBKDF2;
  • Testo e caratteri
    • Nell'implementazione dell'API DirectWrite è stato aggiunto il supporto per le funzionalità OpenType relative alla posizionamento dei glifi, che sono attivate di default per il disegno Latin, incluso il kerning;
    • È stata aumentata la sicurezza nel trattamento dei dati dei caratteri grazie alla verifica della correttezza delle varie tabelle di dati prima del loro utilizzo;
    • Le interfacce DirectWrite sono state aggiornate in conformità con il nuovo SDK;
  • Audio e video
    • È stata proposta una nuova implementazione dell'API audio XAudio2, basata su un progetto FAudio. L'uso di FAudio in Wine consente di ottenere una qualità audio superiore nei giochi e di sfruttare funzionalità come il mixaggio del volume e effetti sonori avanzati;
    • Aggiunte molte nuove chiamate all'implementazione del framework Media Foundation, inclusi supporto per code asincrone integrate e personalizzate, API del Source Reader, Media Session, ecc.
    • Il filtro di acquisizione video è stato convertito per utilizzare l'API v4l2 invece dell'API v4l1, il che ha ampliato la gamma di telecamere supportate;
    • Rimossi i decoder AVI, MPEG-I e WAVE integrati, ora si utilizzano i decoder GStreamer o QuickTime di sistema;
    • Aggiunto un sottoinsieme di API di configurazione VMR7;
    • Nei driver audio è stato aggiunto il supporto per la regolazione del volume dei singoli canali;
  • Internazionalizzazione
    • Le tabelle Unicode 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 attuale;
  • RPC/COM
    • Nella typelib è stato aggiunto il supporto per strutture complesse e array;
    • Aggiunta un'implementazione iniziale della libreria runtime Windows Script;
    • Aggiunta un'implementazione iniziale della libreria ADO (Microsoft ActiveX Data Objects);
  • Installatori
    • Per l'installer MSI è stata implementata la supporto per la fornitura di patch (Patch Files);
    • Nell'utilità WUSA (Windows Update Standalone Installer) è stata aggiunta la possibilità di installare aggiornamenti in formato .MSU;
  • Piattaforma ARM
    • Per l'architettura ARM64 in ntdll è stata aggiunta la supporto per il ripristino dello stack (stack unwinding). È stata aggiunta la supporto per il collegamento di librerie esterne libunwind;
    • Per l'architettura ARM64 è stata implementata la supporto per proxy senza stub (stubless proxies) per le interfacce degli oggetti;
  • Strumenti per lo sviluppo / Winelib
    • È stata aggiunta la possibilità di utilizzare il debugger di Visual Studio per il debug remoto delle applicazioni in esecuzione su Wine;
    • È stata parzialmente implementata la libreria DBGENG (Debug Engine);
    • I file eseguibili compilati per Windows non dipendono più da libwine, consentendo loro di essere eseguiti in Windows senza dipendenze aggiuntive;
    • Nel Resource Compiler e nell'IDL Compiler è stata aggiunta l'opzione ‘—sysroot’ per specificare il percorso di posizionamento dei file header;
    • Nel winegcc sono state aggiunte le opzioni ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ e ‘-fuse-ld’, semplificando la configurazione dell'ambiente per la cross-compilazione;
  • Applicazioni integrate
    • È stata implementata l'utilità CHCP per configurare la codifica della console;
    • È stata implementata l'utilità MSIDB per la manipolazione di database in formato MSI;
  • Ottimizzazione delle prestazioni
    • Diverse funzionalità legate al tempo sono state tradotte per utilizzare funzioni di sistema ad alte prestazioni per il timer, consentendo di ridurre il sovraccarico nel ciclo di rendering di molti giochi;
    • È stata aggiunta la possibilità di utilizzare nel FS Ext4 modalità di funzionamento senza distinzione tra maiuscole e minuscole;
    • È stata effettuata un'ottimizzazione delle prestazioni per la gestione di un gran numero di elementi nei dialoghi di output delle liste, operanti in modalità LBS_NODATA;
    • È stata aggiunta un'implementazione più veloce dei blocchi SRW (Slim Reader/Writer) per Linux, tradotta su Futex;
  • Dipendenze esterne
    • Per la costruzione di moduli nel formato PE è stato utilizzato un cross-compiler MinGW-w64;
    • L'implementazione di XAudio2 richiede la libreria FAudio;
    • Per il monitoraggio delle modifiche ai file nei 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster