Un recente aggiornamento apportato al kernel di Linux dal fondatore Linus Torvalds sta portando ad un miglioramento misurabile delle performance in ambienti multithread.
Questo piccolo ma significativo cambiamento, noto con il nome tecnico di x86/uaccess: Avoid barrier_nospec() in 64-bit copy_from_user(), è una modifica di sicurezza che punta a mitigare vulnerabilità conosciute come Meltdown e Spectre, emerse entrambe nel corso del 2018. Questi attacchi rappresentano ancora una minaccia attuale. Le patch per affrontarli restano quindi fondamentali considerando l'ampiezza dell'ecosistema che fa riferimento al Pinguino.
Linux: più sicurezza con una piccola patch
La correzione, originariamente proposta dallo sviluppatore di Red Hat Josh Poimboeuf, è stata ottimizzata dallo stesso Torvalds per incrementare la velocità di esecuzione in Linux. Grazie a questo miglioramento, il kernel del progetto ha registrato un incremento del 2.6% nel benchmark per_thread_ops. Questo secondo i test eseguiti tramite il kernel test robot.
La versione di Torvalds elimina l'uso dell'API barrier_nospec()
che previene l'esecuzione speculativa di alcuni blocchi di codice. Questa tecnica, comunemente adottata nei processori più recenti attualmente in commercio, sfrutta la previsione dei rami per eseguire preventivamente del codice potenzialmente utile, migliorando l'efficienza quando la previsione che è stata formulata è corretta.
Tale approccio ha portato anche alla scoperta di alcune nuove vulnerabilità. Per mitigare i rischi, Torvalds ha optato per una tecnica di pointer masking che garantisce la sicurezza senza compromettere la velocità complessiva del sistema.
Maggiore protezione per i server
Questo tipo di patch sono fondamentali per proteggere i server Linux che spesso eseguono servizi web e altre applicazioni critiche. Tali modifiche potrebbero rallentare leggermente i sistemi coinvolti ma sono essenziali per rendere Linux più sicuro contro attacchi che sfruttano vulnerabilità hardware.
Su macchine standalone, come Desktop e laptop personali, è possibile disabilitare le protezioni per ottenere un miglioramento delle prestazioni. L'utente deve essere però consapevole dei rischi che ciò potrebbe comportare.