Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_7f00264e7b738f31c2658a9358d07fba is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_7f00264e7b738f31c2658a9358d07fba is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Dimenticatevi le prestazioni mediocri di Wine: patch per il kernel Linux cambia tutto

Dimenticatevi le prestazioni mediocri di Wine: patch per il kernel Linux cambia tutto

CodeWeavers propone una patch per il kernel Linux che consentirà di migliorare le prestazioni di Wine. Diventa così possibile eseguire programmi e giochi Windows su altre piattaforme (Linux e macOS) senza più essere legati a pesanti fardelli.
Dimenticatevi le prestazioni mediocri di Wine: patch per il kernel Linux cambia tutto

Tra le applicazioni che, storicamente, hanno permesso di superare i confini della piattaforma Windows portando le applicazioni compatibili con il sistema operativo Microsoft anche su altre piattaforme, c’è sicuramente Wine. Wine (Wine Is Not an Emulator) aiuta ad eseguire software progettato per Windows su sistemi operativi basati su Unix, come Linux e macOS.

Non è un emulatore tradizionale quanto piuttosto un layer di compatibilità: traduce cioè le chiamate di sistema Windows in chiamate comprensibili dal sistema operativo host (Linux o macOS). Lo strato aggiuntivo posto da Wine permette alle applicazioni Windows di interagire con il sistema operativo sottostante, come se fossero eseguite in un ambiente nativo.

Progetti come winlator e mobox permettono di eseguire programmi Windows su Android proprio facendo leva su Wine. Non va dimenticato, infatti, che “ai piedi” del sistema operativo Android c’è sempre il kernel Linux.

Perché le prestazioni con Wine sono inferiori rispetto all’esecuzione del programma nel suo ambiente nativo

Le prestazioni inferiori di Wine rispetto all’esecuzione di un programma nel suo ambiente nativo possono essere attribuite a diversi fattori. Innanzi tutto, come abbiamo evidenziato in precedenza, Wine deve tradurre le chiamate di sistema Windows in chiamate comprensibili e gestibili dal sistema operativo ospitante. Il processo comporta un certo overhead che influisce sulle performance complessive.

Windows e i sistemi operativi GNU/Linux hanno architetture differenti. Le difformità nei modelli di gestione della memoria, nei sottosistemi grafici e in altri aspetti possono richiedere complessità aggiuntive da parte di Wine per garantire la compatibilità, con un impatto negativo sulle prestazioni.

Le applicazioni Windows sono inoltre spesso ottimizzate per l’utilizzo nel sistema operativo Microsoft. Wine cerca di riprodurre queste ottimizzazioni, ma non sempre è possibile assicurare lo stesso livello prestazionale su una piattaforma completamente diversa.

La patch per il kernel Linux che fa salire alle stelle le prestazioni di Wine

Se ne parlava da almeno un anno ma adesso la patch per il kernel Linux, accreditata di migliorare significativamente le prestazioni di Wine, potrebbe finalmente diventare parte integrante del “nocciolo” utilizzato nelle principali distribuzioni.

Lo fa presente Elizabeth “Zeb” Figura (CodeWeavers) che ha presentato un driver funzionante a basso livello (/dev/ntsync) capace di implementare le primitive per la sincronizzazione sfruttate nella famiglia di sistemi operativi Windows NT.

CodeWeavers è un’azienda specializzata nello sviluppo di soluzioni software volte a migliorare la compatibilità e l’esecuzione di applicazioni Windows sui sistemi operativi Unix-like. L’azienda ha realizzato una versione commerciale di Wine, chiamata CrossOver: include strumenti aggiuntivi e supporto tecnico. Attraverso il lavoro dei suoi sviluppatori, tuttavia, è impegnata anche nella crescita del progetto Wine, con l’invio dei suoi contributi tecnici.

Sviluppatrice e profonda conoscitrice delle soluzioni GNU/Linux, Figura spiega che Wine gestisce le API di Windows nel cosiddetto user space. Una parte cruciale di queste API, le primitive di sincronizzazione NT, risulta implementata tramite RPC (Remote Procedure Call) e legata a un processo dedicato nel kernel. Le primitive di sincronizzazione sono strumenti che consentono la sincronizzazione e il coordinamento tra processi e thread.

L’overhead di RPC, tuttavia, è diventato un vero e proprio collo di bottiglia, specie con le applicazioni che si appoggiano alle API Windows in maniera più sostanziale. La soluzione proposta è quindi quella di innestare le primitive di sincronizzazione NT proprio a livello del kernel Linux, con un guadagno prestazionale che si preannuncia a dir poco meraviglioso.

Quanto crescono le prestazioni di Wine con la patch

Guardate la tabella condivisa dalla stessa Figura. L’analisi è focalizzata sull’esecuzione di videogiochi Windows su Linux ma il balzo prestazionale riguarda qualunque genere di applicazione.

Game Upstream ntsync Improvement
Anger Foot 69 99 43%
Call of Juarez 99.8 224.1 125%
Dirt 3 110.6 860.7 678%
Forza Horizon 5 108 160 48%
Lara Croft: Temple of Osiris 141 326 131%
Metro 2033 164.4 199.2 21%
Resident Evil 2 26 77 196%
The Crew 26 51 96%
Tiny Tina’s Wonderlands 130 360 177%
Total War Saga: Troy 109 146 34%

La seconda e terza colonna mettono a confronto le prestazioni rilevate oggi con Wine e quelle emerse dopo l’abilitazione del nuovo driver nel kernel Linux. L’ultima colonna (improvement) fotografa il guadagno prestazionale, che mediamente supera il 150% e in un caso arriva addirittura al 678%.

A questo punto spetterà a Linus Torvalds dare il “via libera” per l’aggiunta della preziosa modifica a livello kernel. Va detto, comunque, che la proposta è indicata al momento come RFC (Request for Comments). Prima dell’effettiva integrazione, quindi, è in attesa dei commenti e dei feedback della comunità. Potrebbero essere necessarie alcune revisioni prima di giungere a qualcosa che possa essere ufficialmente adottato nel kernel Linux.

Per approfondire, potete visionare l’intervento di Zeb Figura durante la Linux Plumbers Conference.

Credit immagine in apertura: Microsoft Bing Image Creator.

Ti consigliamo anche

Link copiato negli appunti