Rust fa capolino nel Kernel Linux

5

Nonostante i suoi 30 anni di vita, che nel mondo del software sono veramente tantissimi, il Kernel Linux continua la sua evoluzione anche con l’integrazione di tecnologie nuove. Comprese linguaggi di programmazione nuovi, come Rust.

Come buona parte del software di quell’età, centrato sulle performance, il Kernel è scritto in C – che poi è la base di UNIX e di tutto il mondo GNU. Per quanto potente ed efficiente, il linguaggio soffre di un problema: la gestione della memoria è demandata completamente ai programmatori. Allocazioni, assegnazioni, cancellazioni, controllo di rimanere nei limiti previsti: tutto. E nonostante librerie e best practice diffuse, errori di programmazione sfruttabili come vettori di attacco sono scoperte all’ordine del giorno.

Rust risolverebbe almeno questi problemi, in quanto specificamente progettato per poter garantire una corretta gestione della memoria autonomamente, a livello di linguaggio. E proprio per questo è già più di un anno che si pensa alla sua adozione nel Kernel, il componente principale di ogni sistema operativo.

E qualcosa adesso sembra muoversi per davvero: settimana scorsa è stata accettata una patch per l’integrazione di driver scritti in Rust nell’alberatura del codice candidato all’inclusione nella prossima release del Kernel. Insomma: ingresso ufficiale e anticamera per l’adozione.

Permangono perplessità su alcuni dettagli. Rust si basa per la compilazione su LLVM, una suite alternativa a quella di riferimento GCC. Cosa che non è un problema in sé, ma LLVM supporta meno architetture di GCC: un’adozione generalizzata di Rust limiterebbe l’uso di Linux a quelle architetture – oltre a legare la sua compilazione ad un compilatore specifico.

Staremo a vedere l’evoluzione, consci – come gli sviluppatori – che si tratta solo di un primo passo: siamo ben lontani dalla riscrittura del Kernel intero, o anche solo di alcune sue funzioni principali. Ma è comunque il primo passo!

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.