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, che implementa un sottoinsieme di chiamate di sistema del kernel Linux, sufficiente per creare ambienti di lavoro tipici. Il progetto è stato avviato nel 2018 e inizialmente utilizzava il linguaggio C, ma nel 2020 è stato completamente riprogettato da zero tenendo conto dell'esperienza accumulata ed è passato a Rust per ridurre la probabilità di errori di gestione della memoria. Il codice del kernel è distribuito sotto la licenza MIT. Oltre al kernel, il progetto in Rust include anche X11-un server, un gestore di pacchetti, un bootloader, un installer, un insieme di utilità 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 (per confronto, il kernel Linux conta 33 milioni di righe di codice). È possibile eseguire il codice in QEMU, VirtualBox o su hardware reale. Nello stato attuale di sviluppo, in Maestro sono implementate 31% (135 su 437) delle chiamate di sistema Linux, sufficienti per avviare un ambiente console basato su bash e sulla libreria standard C Musl. Nell'ambiente basato su Maestro possono essere eseguite anche alcune utilità 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 possibilità disponibili in Maestro:

  • Driver per tastiere PS/2 e terminali con modalità testuale e supporto parziale per sequenze ANSI.
  • Un sistema di gestione della memoria che supporta la memoria virtuale.
  • Uno scheduler basato su algoritmo round-robin con supporto per segnali POSIX.
  • Riconoscimento dei dispositivi PCI.
  • Driver IDE/PATA.
  • Filesystem Ext2.
  • Supporto per file system virtuali /tmp e /proc.
  • Supporto per il montaggio di file system e partizioni disco MBR e GPT.
  • Supporto per initramfs.
  • Driver RTC per timer e ora precisa.
  • Supporto per il caricamento di moduli del kernel.
  • Possibilità di eseguire file in formato ELF.

Attualmente si sta lavorando sulla creazione di uno stack di rete, la cui conclusione prevede l'implementazione del supporto per il mapping diretto dei file in memoria e per le librerie condivise.

Fonte: opennet.ru

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