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

Ein Projekt zur Entwicklung eines leichten Unix-ähnlichen Kerns in Rust wurde vorgestellt, der eine Teilmenge der Systemaufrufe des Linux-Kerns implementiert, die für die Erstellung typischer Arbeitsumgebungen ausreichend ist. Das Projekt wurde 2018 gegründet und nutzte zunächst die Programmiersprache C, wurde jedoch 2020 vollständig neu gestartet, basierend auf den gesammelten Erfahrungen, und wechselte zu Rust, um die Wahrscheinlichkeit von Fehlern im Umgang mit Speicher zu verringern. Der Kerncode wird unter der MIT-Lizenz veröffentlicht. Neben dem Kern werden auch X11-entwickelt.der Server, ein Paketmanager, Bootloader, Installer, Dienstprogrammsätze und andere Komponenten, die für den Aufbau eines Betriebssystems erforderlich sind.

Der Kernel hat eine monolithische Architektur und unterstützt bisher nur x86-Systeme im 32-Bit-Modus. Der Code des Kernels umfasst 48.800 Zeilen Code (zum Vergleich: Der Linux-Kernel hat 33 Millionen Zeilen Code). Ein Start ist in QEMU, VirtualBox oder direkt auf der Hardware möglich. In der aktuellen Entwicklungsstufe unterstützt Maestro 31 % (135 von 437) der Linux-Systemaufrufe, was ausreicht, um eine Konsole mit der Bash-Shell und der standardmäßigen C-Bibliothek Musl zu laden. In der Maestro-Umgebung können auch einige Utilities aus dem GNU coreutils-Paket ausgeführt werden, wie ls, cat, mkdir, rm, rmdir, uname und whoami.

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

Zu den verfügbaren Funktionen von Maestro gehören:

  • Treiber für PS/2-Tastaturen und Terminals im Textmodus mit teilweiser Unterstützung von ANSI-Sequenzen.
  • Ein Gedächtnisverwaltungssystem, das virtuelle Speicher unterstützt.
  • Ein Aufgabenplaner basierend auf dem Round-Robin-Algorithmus mit Unterstützung für POSIX-Signale.
  • Erkennung von PCI-Geräten.
  • IDE/PATA-Treiber.
  • Ext2-Dateisystem.
  • Unterstützung virtueller Dateisysteme /tmp und /proc.
  • Unterstützung für das Einhängen von Dateisystemen und Partitionen im MBR- und GPT-Format.
  • 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 Entwicklung eines Netzwerkstacks gearbeitet. Nach Fertigstellung ist geplant, die Unterstützung für das direkte Mappen von Dateien in den Speicher und gemeinsam genutzte Bibliotheken zu realisieren.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster