Il kernel Maestro, scritto in Rust e parzialmente compatibile con Linux

È stato presentato un progetto per lo sviluppo di un kernel Unix-like leggero in Rust, implementando un sottoinsieme delle chiamate di sistema del kernel Linux, sufficiente per creare ambienti di lavoro tipici. Il progetto è stato creato nel 2018 e inizialmente utilizzava il linguaggio C, ma nel 2020 è stato completamente riproposto da zero tenendo conto dell'esperienza accumulata ed è passato a Rust per ridurre la probabilità di errori nella gestione della memoria. Il codice del kernel è distribuito con licenza MIT. Oltre al kernel, il progetto in Rust sviluppa anche X11-server, un gestore di pacchetti, un bootloader, un installer, un insieme di utility e altri componenti necessari per costruire un sistema operativo.

Il kernel ha un'architettura monolitica e attualmente supporta solo sistemi x86 in modalità a 32 bit. La base di codice del kernel conta 48.8 mila righe di codice (a titolo di confronto, nel kernel Linux ci sono 33 milioni di righe di codice). È possibile avviare in QEMU, VirtualBox o su hardware. Nello stato attuale di sviluppo, in Maestro sono implementate il 31% (135 su 437) delle chiamate di sistema Linux, sufficienti per avviare un ambiente della console basato su bash e la libreria standard C Musl. Nell'ambiente basato su Maestro possono essere eseguite anche alcune utility del pacchetto GNU coreutils, come ls, cat, mkdir, rm, rmdir, uname e whoami.

Il kernel Maestro, scritto in Rust e parzialmente compatibile con Linux

Tra le funzionalità disponibili in Maestro:

  • Driver per tastiera PS/2 e terminali con modalità testo e supporto parziale per sequenze ANSI.
  • Un sistema di distribuzione della memoria che supporta la memoria virtuale.
  • Uno scheduler di processi basato su algoritmo round-robin con supporto per segnali POSIX.
  • Rilevamento dei dispositivi PCI.
  • Driver IDE/PATA.
  • File system Ext2.
  • Supporto per i filesystem virtuali /tmp e /proc.
  • Supporto per il montaggio di filesystem e partizioni disco MBR e GPT.
  • Supporto per initramfs.
  • Driver RTC per timer e tempo preciso.
  • Supporto per il caricamento di moduli del kernel.
  • Possibilità di eseguire file eseguibili nel formato ELF.

Attualmente si sta lavorando alla creazione di uno stack di rete, dopo di che si prevede di implementare il supporto per il mapping diretto dei file in memoria e librerie condivise.

Fonte: opennet.ru

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