Rilascio stabile di Wine 11.0

Dopo un anno di sviluppo e 25 versioni sperimentali, viene presentato il rilascio stabile dell'implementazione open source delle Win32 API — Wine 11.0, che incorpora oltre 6300 modifiche e 600 correzioni di bug. Tra i principali risultati della nuova versione si distingue il supporto completo per NTSYNC, l'implementazione del meccanismo Reparse Point e l'utilizzo della nuova architettura WoW64.

In Wine è confermato il funzionamento completo di 5419 programmi per Windows (l'anno scorso 5372, due anni fa 5336, tre anni fa 5266), ulteriori 4500 programmi (l'anno scorso 4435, due anni fa 4397, tre anni fa 4370) funzionano perfettamente con impostazioni aggiuntive e DLL esterne. Per 4086 programmi (l'anno scorso 4020, due anni fa 3943, tre anni fa 3888) si notano alcuni piccoli problemi che non ostacolano l'utilizzo delle funzionalità principali delle applicazioni.

Novità principali di Wine 11.0:

  • Supporto completo per il driver ntsync, che consente di aumentare notevolmente le prestazioni dei giochi Windows eseguiti tramite Wine. Il driver fa parte del kernel Linux a partire dalla versione 6.14 e implementa un dispositivo simbolico /dev/ntsync e un insieme di primitive di sincronizzazione utilizzate nel kernel di Windows NT. Un significativo aumento delle prestazioni è ottenuto grazie all'eliminazione dei costi generati dall'uso di RPC nello spazio utente.
  • È stata aggiunta la possibilità di configurare le priorità dei thread in Linux e macOS.
  • In ntdll è stato aggiunto l'API per la sincronizzazione 'Synchronization barriers', che consente di sospendere l'esecuzione di più thread fino a raggiungere un determinato punto di esecuzione in tutti i thread (ad esempio, aspettare che tutti i thread raggiungano una specifica fase nell'esecuzione parallela dello stesso codice).
  • È stata classificata come completamente supportata la nuova implementazione di WoW64 (Windows-on-Windows a 64 bit), che consente di eseguire applicazioni Windows a 32 bit su sistemi Unix a 64 bit. A differenza della vecchia implementazione di WoW64, in cui le applicazioni a 32 bit venivano avviate in processi Unix a 32 bit, il nuovo WoW64 consente di eseguire il codice a 32 bit all'interno di un processo a 64 bit. È stato implementato il supporto per l'esecuzione di applicazioni a 16 bit in modalità WoW64.

    In tutti i moduli che accedono a librerie Unix, sono stati utilizzati i convertitori di chiamate di sistema WoW64 (thunk), che consentono ai moduli a 32 bit in formato PE di accedere a librerie Unix a 64 bit. È stata aggiunta la possibilità di eseguire vecchie installazioni WoW64 in una nuova modalità tramite l'impostazione della variabile ambiente 'WINEARCH=wow64'. I prefissi a 32 bit creati impostando WINEARCH=win32 sono stati dichiarati obsoleti e non sono supportati nella nuova modalità WoW64. È stato rimosso il caricatore wine64 separato, e al suo posto è stato utilizzato un caricatore universale che determina la modalità in base all'architettura del file eseguibile.

  • Nucleo (interfacce del kernel Windows)
    • È stato implementato il meccanismo Reparse Point, tramite il quale è possibile allegare dati aggiuntivi a file e directory, identificabili tramite tag. Sono supportati tipi di Reparse Point come collegamenti simbolici e punti di montaggio.
    • Per migliorare le prestazioni nel monitoraggio delle operazioni di scrittura in memoria è stato attivato il meccanismo UFFD (userfaultfd), che consente di creare gestori per le richieste di pagine non allocate (page faults) nello spazio utente. Nei test condotti, l'uso di UFFD ha permesso di ridurre il tempo di caricamento dei livelli nel gioco 'Streets of Rage 4' da 6-8 secondi a 1.5-2 secondi, allineando i risultati a quelli della piattaforma Windows.
    • Sono stati utilizzati numeri di chiamate di sistema NT, identici alle ultime versioni di Windows, necessari per supportare le applicazioni che utilizzano numeri di chiamate di sistema codificati.
    • Su sistemi ARM64 è stata implementata la possibilità di simulare pagine di memoria di dimensione 4K in ambienti con kernel Linux che utilizzano pagine di memoria più grandi (16K o 64K). La simulazione consente di eseguire applicazioni semplici, mentre per programmi più complessi si raccomanda di utilizzare kernel Linux con pagine di memoria da 4 kilobyte.
  • Sottosistema grafico
    • Su sistemi X11 (winex11), per OpenGL è stato utilizzato per impostazione predefinita un backend di rendering basato su EGL. Il backend GLX è stato dichiarato obsoleto, ma rimane disponibile come riserva e viene utilizzato in assenza di EGL.
    • È stata aggiunta la supporto iniziale per oggetti D3DKMT, che forniscono accesso a basso livello ai dispositivi grafici dallo spazio utente. Sono state implementate le estensioni Vulkan VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 e VK_KHR_win32_keyed_mutex.
    • In modalità WoW64 (Windows-on-Windows a 64 bit) è stato implementato il supporto per il mapping della memoria per OpenGL tramite l'API Vulkan, che accelera il funzionamento delle applicazioni OpenGL a 32 bit in Wine.
    • È stata implementata l'emulazione del buffer di visualizzazione (front buffer) per OpenGL su piattaforme prive di supporto integrato.
    • Nel driver per l'API grafica Vulkan è stato aggiunto il supporto per la specifica Vulkan 1.4.335.
    • Nel pacchetto di librerie WindowsCodecs è stato ampliato il supporto per i metadati nei file immagine, e realizzato il supporto per la conversione tra formati di colore interi e formati a virgola mobile.
    • È stata rimossa la dipendenza dalla libreria OSMesa (Off-screen Mesa). È stata implementata la possibilità di disegnare bitmap tramite OpenGL utilizzando il runtime OpenGL accelerato dall'hardware.
  • Integrazione con il desktop
    • Nel driver winewayland.drv, che consente di utilizzare Wine in ambienti basati sul protocollo Wayland senza utilizzare XWayland e componenti X11, è stato implementato il supporto per il clipboard, i metodi di input, le finestre non rettangolari e la trasparenza.
    • È stata migliorata l'integrazione con X11: è stato reso possibile l'invio di richieste di attivazione delle finestre al gestore di finestre e utilizzato il protocollo EWMH per coordinare lo stato delle finestre attive di X11 e Win32.
    • È stato implementato il supporto per la modalità esclusiva a schermo intero. È stato migliorato il supporto per la modalità a schermo intero in D3D e sono state ottimizzate le prestazioni dei giochi più vecchi basati su DDraw.
    • È stata aumentata la performance di alcune funzioni di gestione delle finestre. Per l'interazione tra processi è stata utilizzata la memoria condivisa.
  • Direct3D
    • In Direct3D 11 è stato aggiunto il supporto per l'accelerazione hardware della decodifica video in formato H.264, implementato tramite l'API grafica Vulkan.
    • In Direct3D 11 è stato implementato il supporto per la filtrazione minmax delle texture, utilizzando l'estensione OpenGL GL_ARB_texture_filter_minmax o l'estensione Vulkan VK_EXT_sampler_filter_minmax.
    • In Direct3D 11 sono state implementate funzioni di caricamento delle texture.
    • È stata implementata una vasta gamma di funzionalità di Direct3D per il rendering tramite Vulkan, come la miscelazione dei vertici, l'ombreggiatura piatta, piani di ritaglio personalizzati e vari formati di risorse.
    • Nella copia incorporata di vkd3d-shader è stato migliorato il supporto per i modelli 1, 2 e 3 degli shader.
    • Nel metodo D3DXSaveSurfaceToFileInMemory è stato implementato il supporto per le immagini PNG, JPEG e BMP.
    • In Direct3D 10 e 11 è stato implementato il supporto per la compressione e decompressione dei formati BC4 e BC5, nonché per la generazione dei livelli MIP (MipMap) durante il caricamento delle texture.
    • Sono stati implementati i metodi ID3DXEffect::SetRawValue() e ID3DXSkinInfo::UpdateSkinnedMesh().
  • Dispositivi di input
    • Migliorata la compatibilità con i joystick grazie all'uso del backend hidraw.
    • Migliorato il supporto per l'effetto di vibrazione (Force feedback) durante l'uso di volanti e joystick.
    • Migliorato il supporto per i gamepad nell'API Windows.Gaming.Input e con l'uso del backend evdev.
    • Nell'applet di gestione dei controller di gioco è stata aggiunta una scheda per la configurazione dell'API Windows.Gaming.Input.
    • Aumentata la compatibilità di DirectInput con i giochi più vecchi.
  • Bluetooth
    • Nel driver per Bluetooth è stata aggiunta la possibilità di scansione, impostazione della rilevazione e accoppiamento dei dispositivi.
    • Aggiunta la supporto per i servizi Bluetooth Low Energy.
    • Le applicazioni possono ora creare connessioni RFCOMM a basso livello con dispositivi esterni, utilizzando l'API Winsock.
  • Supporto per scanner
    • Implementato il supporto per l'API TWAIN 2.0, consentendo l'accesso agli scanner da applicazioni a 64 bit.
    • Implementato il supporto per il componente DAT_IMAGENATIVEXFER per il trasferimento delle immagini dallo scanner all'applicazione.
    • Garantito il salvataggio nel registro dello scanner e delle impostazioni selezionate.
    • Aggiunto supporto per la scansione di documenti multipagina e alimentatori automatici.
    • Interrotta la bloccatura dell'applicazione durante la chiamata all'interfaccia di scansione.
    • Aggiunto supporto per il caricamento dei driver di Windows nativi per scanner.
  • Internazionalizzazione
    • Garantita la generazione del database delle locale nel formato locale.nls dal database Unicode CLDR (Unicode Common Locale Data Repository) versione 48. Aggiunto supporto per ulteriori locali bua-RU, bqi-IR, cop-EG, ht-HT, kek-GT, lzz-TR, mww-Hmnp-US, oka-CA, pi-Latn-GB, pms-IT, sgs-LT, suz-Deva-NP e suz-Sunu-NP.
    • Le tabelle dei caratteri Unicode sono state aggiornate alla versione standard 17.0.0. Aggiornato il database dei fusi orari.
  • Funzionalità di rete
    • Nel motore MSHTML in modalità di conformità agli standard è stata garantita la gestione degli attributi degli elementi come nodi DOM completi. Implementati oggetti DOMParser, XDomainRequest e msCrypto.
    • In JavaScript è stato aggiunto il supporto per array tipizzati.
    • Per ICMPv6 è stata implementata il comando ping.
  • DB
    • Nella libreria MSADO (ActiveX Data Objects) è stato aggiunto il supporto per la registrazione delle modifiche nel database. Implementate la maggior parte delle funzioni dell'oggetto Recordset.
    • Nella libreria odbc32 è stato migliorato il supporto per i driver ANSI win32 non progettati per lavorare con Unicode. Implementate le funzioni SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() e QLColumnsW().
  • Applicazioni integrate
    • In WineCfg è stata aggiunta una scheda per impostare il dispositivo MIDI predefinito.
    • Nell'utilità cmd è stata implementata la completamento automatico dell'immissione di nomi di file in modalità interattiva, è stato aggiunto il supporto per comandi complessi e è stata implementata la comando 'mklink /j' per creare un Reparse Point.
    • Nell'utilità conhost (Console Hosting) è stato aggiunto il supporto per l'acquisizione della cronologia premendo i tasti F1 e F3.
    • Sono stati implementati i comandi timeout, runas e subst.
    • Nell'utilità find sono state aggiunte le opzioni '/c' per visualizzare il numero di corrispondenze e '/i' per le corrispondenze senza distinzione tra maiuscole e minuscole.
    • Nell'utilità whoami è stata aggiunta la possibilità di configurare il formato di output.
  • Varie
    • Nella realizzazione del linguaggio di descrizione dell'interfaccia WIDL (Wine Interface Definition Language) è stato aggiunto il supporto per la generazione di metadati Windows Runtime (WinRT). È garantita la generazione e l'installazione dei file WinMD (Windows Metadata) per l'API WinRT (Windows Runtime).
    • Nell'utilità winedump è stato aggiunto il supporto per il dump delle risorse MUI, dei numeri delle syscall, dei moduli NE incorporati e dei grandi file PDB (> 4 GB).
    • È stata effettuata una rifattorizzazione dell'implementazione del Common Control, la libreria COMCTL32 è stata suddivisa in moduli separati per le versioni 5 e 6.
    • In BCrypt è stato aggiunto il supporto per lo standard di derivazione della chiave PBKDF2.
    • È stato aggiunto il supporto per le directory UserProgramFiles, AccountPictures e Screenshots.
    • Sono state integrate le librerie LLVM Compiler-RT 8.0.1 e TomCrypt 1.18.2. Per la determinazione della CPU sulla piattaforma FreeBSD è stata utilizzata la libreria HwLoc.
    • I componenti Vkd3d 1.18, Faudio 25.12, FluidSynth 2.4.2, LCMS2 2.17, LibMPG123 1.33.0, Libpng 1.6.51, LibTiff 4.7.1, LibXml2 2.12.10, LibXslt 1.1.43 sono stati aggiornati alle nuove versioni.

    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