Das Moss-Projekt entwickelt einen Linux-kompatiblen Kernel in der Programmiersprache Rust

Nach 8 Monaten der Entwicklung wurde der erste Prototyp des Unix-ähnlichen Moss-Kernels veröffentlicht, der teilweise mit Linux kompatibel ist. Der Code ist in Rust mit Assembler-Einlagen geschrieben und wird unter der MIT-Lizenz veröffentlicht. Derzeit unterstützt das Projekt nur die Architektur Aarch64, kann in QEMU ausgeführt werden und wurde auf Raspberry Pi 4, Jetson Nano, AMD Kria und imx8 getestet. Laut den Entwicklern kann der Kernel leicht auf andere Architekturen wie x86_64 und RISC-V portiert werden, dank einer Schicht zur Abstraktion der Hardwareunterstützung.

In diesem Entwicklungsstadium implementiert Moss 51 Linux-Systemaufrufe und bietet binäre Kompatibilität mit Linux-Anwendungen, die ausreichen, um die Bash-Shell und die meisten Tools aus der BusyBox-Suite auszuführen. Zu den Besonderheiten der Moss-Architektur gehört die Nutzung des Modells async/await, das die asynchrone Ausführung der Kernel-Komponenten ermöglicht und wesentliche Arten von Deadlocks ausschließt. Alle nicht-trivialen Systemaufrufe sind als asynchron ausgeführte Funktionen implementiert.

Hauptfunktionen:

  • Ein erweiterbares Speichermanagementsystem mit Unterstützung für Copy-on-Write (CoW) Seiten, Speichertabellen, asynchronen Funktionen zum Kopieren von Speicher zwischen Kernel und Benutzerspeicher sowie Fehlerbehandlung (Page Fault) sowohl im Kernel- als auch im Benutzerspeicherbereich.
  • Ein Prozessmanagementsystem mit einem Task-Scheduler und Unterstützung für die Migration von Tasks über Inter-Prozessor-Interrupt (IPI). Unterstützung für die Forking von Prozessen über den Aufruf clone(). Möglichkeiten zur Zustellung von Signalen an Prozesse und Threads.
  • Ein asynchron arbeitender VFS (Virtual File System) Layer, ein Blockgerät Ramdisk, ein FAT32-Treiber und das Gerät devtmpfs.
  • Auslagerung der Hauptfunktionen in die hardwareunabhängige Bibliothek libkernel.
  • HAL-Schicht (Hardware Abstraction Layer) zur Gewährleistung der Hardwareunterstützung.
  • Ein Testpaket, das mehr als 230 Tests umfasst.

Zu den wesentlichen Einschränkungen gehört das Fehlen eines Netzwerk-Subsystems und nur ein abgespeckter Treiber für das Dateisystem, der die FAT32-Dateisystem nur im Nur-Lese-Modus unterstützt. Unter den prioritären Aufgaben wurden die Fortführung der Implementierung von Systemaufrufen in Linux, die Erstellung eines TCP/IP-Stacks, die Unterstützung der Lastverteilung im Task-Scheduler und die Bereitstellung eines vollständigen Treibers für das Dateisystem (ext2/ext4) genannt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster