Rilascio stabile di Wine 11.0

Dopo un anno di sviluppo e 25 versioni sperimentali, è stato rilasciato il nuovo aggiornamento stabile dell'implementazione open source dell'API Win32 — Wine 11.0, che include oltre 6300 modifiche e 600 correzioni di bug. Tra i principali risultati della nuova versione spiccano il supporto completo per NTSYNC, l'implementazione del meccanismo Reparse Point e l'utilizzo della nuova architettura WoW64.

In Wine è confermato il corretto funzionamento di 5419 programmi per Windows (l'anno scorso 5372, due anni fa 5336, tre anni fa 5266), altri 4500 programmi (l'anno scorso 4435, due anni fa 4397, tre anni fa 4370) funzionano perfettamente con alcune configurazioni aggiuntive e DLL esterne. Per 4086 programmi (l'anno scorso 4020, due anni fa 3943, tre anni fa 3888) si riscontrano piccoli problemi operativi, che non ostacolano l'uso delle funzioni principali delle applicazioni.

Novità principali di Wine 11.0:

  • Supporto completo del driver ntsync, che consente di migliorare significativamente le prestazioni dei giochi Windows eseguiti tramite Wine. Il driver è incluso nel kernel Linux a partire dalla versione 6.14 e implementa il dispositivo simbolico /dev/ntsync e un insieme di primitivi per la sincronizzazione utilizzati nel kernel di Windows NT. Un notevole incremento delle prestazioni si ottiene eliminando i sovraccarichi associati all'utilizzo di RPC nello spazio utente.
  • Aggiunta la possibilità di impostare le priorità dei thread in Linux e macOS.
  • In ntdll è stato aggiunto l'API di 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, per attendere che tutti i thread raggiungano una certa fase durante l'esecuzione parallela dello stesso codice).
  • È stata introdotta una nuova implementazione della interfaccia 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, dove le applicazioni a 32 bit venivano eseguite in processi Unix a 32 bit, il nuovo WoW64 consente di eseguire codice a 32 bit all'interno di un processo a 64 bit. È stata implementata la supporto per l'esecuzione di applicazioni a 16 bit in modalità WoW64.

    In tutti i moduli che interagiscono con le librerie Unix, sono impegnati i convertitori di chiamate di sistema WoW64 (thunk), che consentono ai moduli a 32 bit in formato PE di interagire con le librerie Unix a 64 bit. È stata aggiunta la possibilità di eseguire vecchie installazioni di WoW64 in una nuova modalità impostando la variabile di ambiente «WINEARCH=wow64». I prefissi a 32 bit creati impostando WINEARCH=win32 sono stati dichiarati obsoleti e non sono più supportati nella nuova modalità WoW64. È stato rimosso un caricatore separato wine64, sostituito da un caricatore universale che determina la modalità in base all'architettura del file eseguibile.

  • Nucleo (interfacce di core di Windows)
    • È stato implementato un meccanismo Reparse Point, tramite il quale è possibile allegare dati aggiuntivi ai file e alle directory, identificabili tramite tag. Sono supportati tipi di Reparse Point come i collegamenti simbolici e i punti di montaggio.
    • Per migliorare le prestazioni del monitoraggio delle operazioni di scrittura in memoria, è stato attivato il meccanismo UFFD (userfaultfd), che consente di creare gestori per le page fault nello spazio utente. Nei test condotti, l'uso di UFFD ha ridotto il tempo di caricamento dei livelli del gioco «Streets of Rage 4» da 6-8 secondi a 1.5-2 secondi, allineandosi così ai tempi di avvio sulla piattaforma Windows.
    • Sono stati utilizzati numeri di chiamate di sistema NT, identici alle ultime versioni di Windows, necessari per supportare applicazioni che utilizzano numeri di chiamate di sistema hardcoded.
    • Nei sistemi ARM64 è stata implementata la possibilità di simulare pagine di memoria di dimensioni 4K in ambienti con kernel Linux che utilizzano pagine di memoria più grandi (16K o 64K). La simulazione consente di eseguire semplici applicazioni, mentre per programmi più complessi si raccomanda di utilizzare kernel Linux con pagine di memoria da 4 kilobyte.
  • Sottosistema grafico
    • Nei sistemi X11 (winex11) per OpenGL è stato impostato come predefinito un backend di rendering che utilizza EGL. Il backend GLX è stato dichiarato obsoleto, ma rimane disponibile come opzione di riserva e viene utilizzato in assenza di EGL.
    • È stato aggiunto il supporto iniziale per gli 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 le API Vulkan, consentendo di accelerare l'esecuzione delle applicazioni OpenGL a 32 bit in Wine.
    • È stata implementata l'emulazione del buffer di visualizzazione (front buffer) per OpenGL su piattaforme senza supporto integrato.
    • Nel driver per l'API grafica Vulkan è stato aggiunto il supporto per la specifica Vulkan 1.4.335.
    • Nel pacchetto delle librerie WindowsCodecs è stata ampliata la supporto per i metadati nei file immagine, e sono state implementate funzionalità di conversione tra formati di colore interi e formati flottanti.
    • Rimossa la dipendenza dalla libreria OSMesa (Off-screen Mesa). È stata implementata la possibilità di disegnare bitmap tramite OpenGL utilizzando un runtime OpenGL accelerato dall'hardware.
  • Integrazione con il desktop
    • Nel driver winewayland.drv, che consente l'uso di Wine in ambienti basati sul protocollo Wayland senza l'uso di XWayland e componenti X11, è stata implementata la supporto per il clipboard, metodi di input, finestre irregolari e trasparenza.
    • Migliorata l'integrazione con X11: sono state inviate al gestore delle finestre richieste di attivazione delle finestre e utilizzato il protocollo EWMH per coordinare lo stato delle finestre attive X11 e Win32.
    • Implementata la supporto per la modalità schermo intero esclusiva. Migliorato il supporto per la modalità schermo intero in D3D e migliorata la compatibilità con vecchi giochi basati su DDraw.
    • Aumentate le performance di alcune funzioni di gestione delle finestre. Per l'interazione tra processi è stata utilizzata la memoria condivisa.
  • Direct3D
    • In Direct3D 11, hardware acceleration for decoding videos in H.264 format has been added, implemented via the Vulkan graphics API.
    • Direct3D 11 implements support for minmax texture filtering using the OpenGL extension GL_ARB_texture_filter_minmax or the Vulkan extension VK_EXT_sampler_filter_minmax.
    • Direct3D 11 has introduced texture loading functions.
    • A significant portion of Direct3D capabilities for rendering through Vulkan has been implemented, such as vertex blending, flat shading, custom clipping planes, and various resource formats.
    • The built-in copy of vkd3d-shader has improved support for shader models 1, 2, and 3.
    • The method D3DXSaveSurfaceToFileInMemory now supports PNG, JPEG, and BMP images.
    • Direct3D 10 and 11 support compression and decompression of BC4 and BC5 formats, as well as MIP level generation (MipMap) when loading textures.
    • The methods ID3DXEffect::SetRawValue() and ID3DXSkinInfo::UpdateSkinnedMesh() have been implemented.
  • Dispositivi di input
    • Joystick compatibility has been improved through the use of the hidraw backend.
    • Support for force feedback effects has been enhanced for game wheels and joysticks.
    • Gamepad support has been improved in the Windows.Gaming.Input API and when using the evdev backend.
    • Nell'applicazione di gestione dei controller di gioco è stata aggiunta una scheda per la configurazione dell'API Windows.Gaming.Input.
    • Compatibilità migliorata con DirectInput per i giochi più vecchi.
  • Bluetooth
    • Nel driver Bluetooth è stata aggiunta la possibilità di scansione, configurazione della visibilità e accoppiamento dei dispositivi.
    • Aggiunto 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, che consente l'accesso agli scanner da applicazioni a 64 bit.
    • Implementato il supporto per il componente DAT_IMAGENATIVEXFER per trasferire immagini dallo scanner all'applicazione.
    • Assicurato il salvataggio nel registro dello scanner selezionato e delle impostazioni dello scanner.
    • Aggiunto supporto per la scansione multipagina e alimentatori automatici per documenti.
    • Interrotta la bloccaggio dell'applicazione durante la chiamata all'interfaccia di scansione.
    • Aggiunto supporto per il caricamento di driver nativi di Windows per scanner.
  • Internazionalizzazione
    • È stata garantita la generazione del database delle localizzazioni nel formato locale.nls dal database Unicode CLDR (Unicode Common Locale Data Repository) versione 48. È stato aggiunto il supporto per ulteriori localizzazioni 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 17.0.0. È stata aggiornata la base dei fusi orari.
  • Funzionalità di rete
    • Nel motore MSHTML in modalità compatibilità standard, è stata garantita la gestione degli attributi degli elementi come nodi DOM completi. Sono stati implementati gli oggetti DOMParser, XDomainRequest e msCrypto.
    • In JavaScript è stato aggiunto il supporto per gli array tipizzati.
    • Per ICMPv6 è stato implementato il comando ping.
  • DB
    • Nella libreria MSADO (ActiveX Data Objects) è stato aggiunto il supporto per la registrazione delle modifiche nel database. Sono state implementate la maggior parte delle funzioni dell'oggetto Recordset.
    • Nella libreria odbc32 è stato migliorato il supporto per i driver ANSI win32 non progettati per funzionare con Unicode. Sono state implementate le funzioni SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() e SQLColumnsW().
  • Applicazioni integrate
    • In WineCfg è stata aggiunta una scheda per configurare il dispositivo MIDI predefinito.
    • Nell'utilità cmd è stata implementata la funzione di completamento automatico per l'immissione dei nomi dei file in modalità interattiva. È stato aggiunto il supporto per comandi complessi e implementato il comando «mklink /j» per creare un Reparse Point.
    • Nell'utilità conhost (Console Hosting) è stata aggiunta la possibilità di accedere alla cronologia premendo i tasti F1 e F3.
    • Implementate le comandi timeout, runas e subst.
    • Nell'utilità find sono state aggiunte le opzioni «/c» per visualizzare il numero di corrispondenze e «/i» per confronti senza distinzione tra maiuscole e minuscole.
    • Nell'utilità whoami è stata aggiunta la possibilità di impostare il formato di output.
  • Varie
    • Nell'implementazione del linguaggio di descrizione dell'interfaccia WIDL (Wine Interface Definition Language) è stata aggiunta il supporto per la generazione di metadati Windows Runtime (WinRT). È stata garantita la generazione e l'installazione di file WinMD (Windows Metadata) per l'API WinRT (Windows Runtime).
    • Nell'utilità winedump è stato aggiunto il supporto per il dump di risorse MUI, numeri di chiamate di sistema, moduli NE incorporati e file PDB di grandi dimensioni (> 4 GB).
    • È stato effettuato un refactoring dell'implementazione dei 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 generazione delle chiavi PBKDF2.
    • 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 determinare la CPU sulla piattaforma FreeBSD è stata utilizzata la libreria HwLoc.
    • Aggiornati alle nuove versioni 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.

    Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster