Das Maestro-Kernel, geschrieben in Rust und teilweise kompatibel mit Linux

Ein Projekt zur Entwicklung eines leichten Unix-Ă€hnlichen Kernels in der Programmiersprache Rust wurde vorgestellt, der eine Teilmenge der Systemaufrufe des Linux-Kernels implementiert, die ausreichend ist, um typische Arbeitsumgebungen zu schaffen. Das Projekt wurde 2018 ins Leben gerufen und verwendete anfangs die Programmiersprache C, wurde jedoch 2020 vollstĂ€ndig von Grund auf neu gestartet, unter BerĂŒcksichtigung der gesammelten Erfahrungen, und wechselte zu Rust, um die Wahrscheinlichkeit von Fehlern im Umgang mit dem Speicher zu verringern. Der Kernel-Code wird unter der MIT-Lizenz veröffentlicht. Neben dem Kernel werden auch X11-Server, ein Paketmanager, ein Bootloader, ein Installer, Dienstprogramme und andere Komponenten entwickelt, die fĂŒr die Erstellung eines Betriebssystems erforderlich sind.

Der Kernel hat eine monolithische Architektur und unterstĂŒtzt derzeit nur x86-Systeme im 32-Bit-Modus. Der Code des Kernels umfasst 48,8 Tausend Zeilen (zum Vergleich: der Linux-Kernel umfasst 33 Mio. Zeilen). Ein Betrieb in QEMU, VirtualBox oder auf Hardware ist möglich. In der aktuellen Entwicklungsphase implementiert Maestro 31 % (135 von 437) der Systemaufrufe von Linux, was ausreicht, um eine Konsolenumgebung auf der Basis von bash und der Standard-C-Bibliothek Musl zu laden. In der Umgebung basierend auf Maestro können auch einige Dienstprogramme aus dem GNU coreutils-Paket ausgefĂŒhrt werden, wie ls, cat, mkdir, rm, rmdir, uname und whoami.

Das Maestro-Kernel, geschrieben in Rust und teilweise kompatibel mit Linux

Zu den verfĂŒgbaren Funktionen von Maestro gehören:

  • Treiber fĂŒr PS/2-Tastaturen und einen Terminal im Textmodus mit TeilunterstĂŒtzung von ANSI-Sequenzen.
  • Ein Speichermanagementsystem, das virtuelle SpeicherunterstĂŒtzung bietet.
  • Ein Aufgabenplaner auf der Grundlage des Round-Robin-Algorithmus mit UnterstĂŒtzung fĂŒr POSIX-Signale.
  • Erkennung von PCI-GerĂ€ten.
  • IDE/PATA-Treiber.
  • Ext2-Dateisystem.
  • UnterstĂŒtzung fĂŒr virtuelle Dateisysteme /tmp und /proc.
  • UnterstĂŒtzung fĂŒr das Einbinden von Dateisystemen und Partitions MBR und GPT.
  • UnterstĂŒtzung fĂŒr initramfs.
  • RTC-Treiber fĂŒr Timer und genaue Zeit.
  • UnterstĂŒtzung fĂŒr das Laden von Kernelmodulen.
  • Die Möglichkeit, ausfĂŒhrbare Dateien im ELF-Format auszufĂŒhren.

Derzeit wird an der Erstellung eines Netzwerk-Stacks gearbeitet, nach dessen Fertigstellung die UnterstĂŒtzung fĂŒr das direkte Mappen von Dateien in den Speicher und von gemeinsamen Bibliotheken geplant ist.

Quelle: opennet.ru

60GB SSD 8Gb DDR4