Il supporto per Rust nel kernel Linux ha affrontato critiche da parte di Torvalds

Linus Torvalds ha revisionato le patch per l'implementazione della possibilità di creare driver in Rust per il kernel Linux, sollevando alcune critiche.

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

Un altro problema è stato rappresentato dai tentativi di utilizzare calcoli in virgola mobile o tipi a 128 bit, cosa non consentita in ambienti come il kernel Linux. Questo si è rivelato un problema più serio, poiché attualmente la libreria base (core) di Rust è indivisibile e rappresenta un grande blob: non c'è modo di richiedere solo alcune funzionalità, evitando di utilizzare quelle problematiche. La soluzione del problema potrebbe richiedere modifiche al compilatore Rust e alla libreria, e al momento il team non ha una strategia su come realizzare la modularità delle librerie del linguaggio.

Inoltre, Torvalds ha sottolineato che l'esempio di driver fornito è inutile e ha suggerito di allegare come esempio un driver che risolva uno dei problemi reali.

Aggiornamento: Google ha annunciato la propria partecipazione all'iniziativa per promuovere il supporto di Rust nel kernel Linux, evidenziando aspetti tecnici della opportunità di implementare Rust per affrontare i problemi derivanti da errori nella gestione della memoria. Google ritiene che Rust sia già pronto a unirsi al C come linguaggio per lo sviluppo dei componenti del kernel Linux. L'articolo include anche esempi di utilizzo del linguaggio Rust per lo sviluppo di driver del kernel, nel contesto del loro utilizzo nella piattaforma Android (Rust è stato ufficialmente riconosciuto come linguaggio supportato per lo sviluppo su Android).

Si segnala che Google ha sviluppato un prototipo iniziale di un 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. Attualmente, il lavoro non è ancora completo, ma sono già state preparate le interfacce per utilizzare queste astrazioni nel codice Rust per quasi tutte le astratte funzionalità di base del kernel necessarie per l'operatività di Binder.

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