Informationen zum Kerla-Projekt wurden kürzlich veröffentlicht. Kerla wird als Betriebssystemkernel in Rust entwickelt. Der Code wird unter den Lizenzen Apache 2.0 und MIT vertrieben. Das Projekt wird vom japanischen Entwickler Seiya Nuta geleitet, der für das in C geschriebene Mikrokernel-Betriebssystem Resea bekannt ist.
Der neue Kernel zielt zunächst darauf ab, die Kompatibilität mit dem Linux-Kernel auf ABI-Ebene sicherzustellen, sodass unveränderte Binärdateien, die für Linux erstellt wurden, in einer Kerla-basierten Umgebung ausgeführt werden können.
Über Kerala
Kerla ist ein monolithischer Betriebssystemkernel, der von Grund auf in Rust entwickelt wurde. Aktuell läuft Kerla nur auf x86_64-Systemen und implementiert grundlegende Systemaufrufe wie `write`, `stat`, `mmap`, `pipe` und `poll`. Es unterstützt Signale, unbenannte Pipes und Kontextwechsel. Aufrufe wie `fork`, `wait4` und `execve` dienen der Prozesssteuerung. TTY und Pseudo-Terminals (PTY) werden unterstützt. Die Dateisysteme initramfs (zum Mounten des Root-Dateisystems), tmpfs und devfs werden weiterhin unterstützt.
Ein Netzwerk-Stack mit Unterstützung für TCP- und UDP-Sockets, basierend auf der smoltcp-Bibliothek, ist ebenfalls enthalten. Der Entwickler hat eine Boot-Umgebung vorbereitet, die in QEMU- oder Firecracker-VMs mit dem virtio-net-Treiber funktioniert und mit dem Sie sich bereits per SSH verbinden können . Musl dient als Systembibliothek und BusyBox als Benutzer-Utility . Ein Docker-basiertes Build-System ermöglicht es Ihnen, mit dem Kerla-Kernel Ihr eigenes Boot-Initramfs zu erstellen.
Bisher wurden nur wenige Details zu seinem neuen Kernel bekannt gegeben, aber was Kerlas Features am meisten auffällt, ist die Tatsache, dass er in Rust geschrieben ist. Hat das Schreiben in Rust also Vorteile gegenüber anderen Sprachen oder gegenüber bestehendem Code? Viele beantworteten diese Frage mit Ja und betonten die Vorteile der Speichersicherheit, die Sprache bietet.
Es wird auch bei der Überprüfung der Genauigkeit von Speicherzugriffen zur Laufzeit berücksichtigt. Darüber hinaus ist Mozilla der Ansicht, dass Rust Schutz vor Integer-Überläufen bietet , die obligatorische Initialisierung von Variablenwerten vor der Verwendung vorschreibt, standardmäßig Referenzen und unveränderliche Variablen verwendet, eine starke statische Typisierung zur Minimierung logischer Fehler bietet und die Eingabeverarbeitung durch Mustervergleich vereinfacht.
Zu den Vorteilen zählen die integrierten Werkzeuge zur Bewertung der Codequalität und zur Erstellung von Unit-Tests, die nicht nur auf realer Hardware, sondern auch in QEMU ausgeführt werden können. Mozilla hält Rust grundsätzlich für einfacher zu debuggen, da der Compiler Fehler ablehnt. Die Tests haben jedoch auch einige Schwächen von Rust aufgezeigt.
„Wie bei C++ ist es fast unmöglich, idiomatisches Rust ohne die Verwendung von Templates zu schreiben, daher hat es aufgeblähte Binärdateien und langsame Kompilierungszeiten. Alle diese Überprüfungen zur Kompilierzeit sind ebenfalls mit Kosten verbunden. Wenn Sie etwas umschreiben, verlieren Sie außerdem die alte ausgereifte Codebasis, und es gibt keine Möglichkeit, in angemessener Zeit eine Codebasis von ähnlicher Qualität zu erstellen; es ist viel besser, das Programm in Rust zu erweitern, anstatt es neu zu schreiben. Es ist besser, das Programm zu erweitern, als es in Rust neu zu schreiben“, sagt ein Software-Ingenieur.
Laut Aussage des Schöpfers ist dies der Grund, warum die Linux-Entwickler, insbesondere Linus Torvalds selbst, die Idee ablehnten, den gesamten Kernel in Rust neu zu schreiben.
„Machen Sie etwas Arbeit, um sichere Links zu erstellen, schreiben Sie dann den zusätzlichen Code in Rust und Sie können diesen ausgereiften Code immer noch genießen. (Das ist, was Linux macht, es gibt Bemühungen, die Fähigkeit hinzuzufügen, ein Kernel-Modul in Rust zu schreiben), “ fügte er hinzu. Linux-Entwickler untersuchen seit etwa drei Jahren die Möglichkeiten, bestimmte neue Kernel-Module mit der Sprache Rust zu schreiben. Daraus entstand das Projekt »Rust for Linux«.
Sollten Sie mehr erfahren wollen, finden Sie die Details unter folgendem Link.