Il supporto di Rust per il kernel Linux ha affrontato le critiche di Torvalds

Linus Torvalds ha esaminato le patch per implementare la possibilità di creare driver in linguaggio Rust per il kernel Linux, sollevando alcune osservazioni critiche.

Le maggiori preoccupazioni riguardano la possibilità di andare in panic() in situazioni di errore, ad esempio in caso di insufficienza di memoria, quando le operazioni di allocazione dinamica della memoria, anche all'interno del kernel, possono fallire. Torvalds ha dichiarato che un approccio del genere nel kernel è inaccettabile e, se non si comprende questo aspetto, potrebbe rigettare completamente (totally NAKed) qualsiasi codice che tenti di adottare tale approccio. Dall'altra parte, lo sviluppatore delle patch ha riconosciuto questo problema e lo considera risolvibile.

Un altro problema sono stati i tentativi di utilizzare calcoli con numeri in virgola mobile o tipi a 128 bit, che non sono compatibili con ambienti come il kernel Linux. Questo si è rivelato un problema più serio, poiché attualmente la libreria di base (core) di Rust è monolitica e non consente di richiedere solo alcune funzionalità, evitando l'uso di funzionalità problematiche. La risoluzione di questo problema potrebbe richiedere modifiche al compilatore Rust e alla libreria, mentre al momento il team non ha ancora una strategia per implementare la modularità delle librerie del linguaggio.

Inoltre, Torvalds ha osservato che il driver fornito come esempio è inutile e ha suggerito di allegare come esempio un driver che risolve uno dei problemi reali.

Nota: Google ha annunciato il proprio coinvolgimento nell'iniziativa per promuovere il supporto di Rust nel kernel Linux, evidenziando gli aspetti tecnici della ragionevole implementazione di Rust per affrontare i problemi causati da errori nella gestione della memoria. Google ritiene che Rust sia già pronto a unirsi al C come linguaggio per lo sviluppo di componenti del kernel Linux. Nell'articolo vengono anche forniti esempi di utilizzo del linguaggio Rust per lo sviluppo di driver del kernel, nel contesto del loro uso sulla piattaforma Android (Rust è riconosciuto come linguaggio ufficialmente supportato per lo sviluppo su Android).

Si segnala che Google ha sviluppato un prototipo iniziale di driver scritto in Rust per il meccanismo di interprocess communication Binder, che consentirà un confronto dettagliato delle prestazioni e della sicurezza delle implementazioni di Binder in C e Rust. Nella forma attuale, il lavoro non è ancora completato, ma sono già stati preparati wrapper per utilizzare tutte le astrazioni di base della funzionalità del kernel necessarie per far funzionare Binder nel codice Rust.

Fonte: opennet.ru

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