Kerla: un nuovo kernel scritto in Rust e compatibile con Linux ABI

Sono state recentemente rilasciate informazioni sul progetto Kerla, che viene sviluppato come un kernel del sistema operativo scritto nel linguaggio Rust. Il codice è distribuito sotto le licenze Apache 2.0 e MIT. Il progetto è sviluppato dallo sviluppatore giapponese Seiya Nuta, noto per aver creato il sistema operativo microkernel Resea, scritto in linguaggio C.

Il nuovo kernel punta inizialmente garantire la compatibilità con il kernel Linux a livello ABI, che consentirà ai binari non modificati creati per Linux di essere eseguiti in un ambiente basato su Kerla.

A proposito di Keral

Kerla è un kernel del sistema operativo monolitico creato da zero in Rust. Nell'attuale fase di sviluppo, Kerla può essere eseguito solo su sistemi con architettura x86_64 e implementa le chiamate di sistema di base come write, stat, mmap, pipe e poll, supporta segnali, pipe senza nome e cambi di contesto. Chiamate come fork, wait4 ed execve provvedono al controllo dei processi. È disponibile il supporto per tty e pseudo-terminali (pty). Tra i file system initramfs (usati per montare il root FS), tmpfs e devfs sono ancora supportati.

Viene fornito anche uno stack di rete con supporto per socket TCP e UDP, Basato sulla libreria smoltcp. Lo sviluppatore ha preparato un ambiente di boot che funziona in QEMU o Firecracker VM con il driver virtio-net, al quale ci si può già connettere via SSH. Musl viene utilizzato come libreria di sistema e BusyBox viene utilizzato come utility utente. Basato su Docker, è stato preparato un sistema di compilazione che consente di creare il proprio avvio initramfs con il kernel Kerla.

Finora sono stati forniti pochi dettagli sul suo nuovo kernel, ma ciò che attira maggiormente l'attenzione sulle caratteristiche di Kerla è il fatto che è scritto in Rust. Quindi scriverlo in Rust ha dei vantaggi rispetto ad altri linguaggi o al codice esistente? Molti hanno risposto affermativamente a questa domanda, sottolineando i vantaggi in termini di sicurezza della memoria offerti dal linguaggio.

Viene fornito anche durante la valutazione dell'accuratezza degli accessi alla memoria in fase di esecuzione. Cosa c'è di più, Mozilla ritiene che Rust offra protezione contro gli integer overflow, richiede l'inizializzazione obbligatoria dei valori delle variabili prima dell'uso, adotta il concetto di riferimenti e variabili immutabili per impostazione predefinita, offre una forte tipizzazione statica per ridurre al minimo gli errori logici e semplifica l'elaborazione dell'input attraverso la corrispondenza dei modelli.

Tra i vantaggi, segnaliamo gli strumenti integrati per valutare la qualità del codice e creando unit test che possono essere eseguiti non solo su hardware reale, ma anche su QEMU. Fondamentalmente, Mozilla trova più facile eseguire il debug di Rust, poiché il compilatore rifiuterà gli errori. Tuttavia, le insenature hanno indicato alcuni inconvenienti con Rust.

“Come con C++, è quasi impossibile scrivere Rust idiomatico senza usare modelli, quindi ha binari gonfi e tempi di compilazione lenti. Anche tutti questi controlli in fase di compilazione hanno un costo. Inoltre, se riscrivi qualcosa, perdi il vecchio codebase maturo e non c'è modo di produrre un codebase di qualità simile in un ragionevole lasso di tempo; è molto meglio estendere, piuttosto che riscrivere, il programma in Rust. È meglio estendere il programma piuttosto che riscriverlo in Rust ", afferma un ingegnere del software.

Secondo il suo creatore, è per questo motivo che gli sviluppatori Linux, in particolare lo stesso Linus Torvalds, hanno rifiutato l'idea di riscrivere l'intero kernel in Rust.

“Fai del lavoro per creare collegamenti sicuri, quindi scrivi il codice aggiuntivo in Rust e puoi ancora goderti quel codice maturo. (Questo è ciò che fa Linux, ci sono sforzi per aggiungere la possibilità di scrivere un modulo del kernel in Rust), "ha aggiunto. Gli sviluppatori Linux hanno esplorato le possibilità di scrivere alcuni nuovi moduli del kernel usando il linguaggio Rust per circa tre anni. Ciò ha dato origine al progetto »Rust for Linux«.

Infine, se sei interessato a saperne di più, puoi consultare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.