Kerla: ein neuer Kernel, geschrieben in Rust und kompatibel mit dem Linux ABI

Vor kurzem wurden Informationen über das Kerla-Projekt veröffentlicht, das als Betriebssystem-Kernel in der Sprache Rust entwickelt wird. Der Code wird unter den Lizenzen Apache 2.0 und MIT vertrieben. Das Projekt wird vom japanischen Entwickler Seiya Nuta entwickelt, der für die Entwicklung des in C geschriebenen Mikrokernel-Betriebssystems Resea bekannt ist.

Der neue Kernel zielt zunächst Kompatibilität mit dem Linux-Kernel auf ABI-Ebene sicherstellen, wodurch unmodifizierte 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 in Rust von Grund auf neu erstellt. In der aktuellen Entwicklungsphase ist Kerla kann nur auf Systemen mit x86_64-Architektur ausgeführt werden und implementiert grundlegende Systemaufrufe wie write, stat, mmap, pipe und poll, unterstützt Signale, unbenannte Pipes und Kontextwechsel. Aufrufe wie fork, wait4 und execve sorgen für die Steuerung der Prozesse. Es gibt Unterstützung für tty und Pseudo-Terminals (pty). Unter den initramfs-Dateisystemen (die zum Einhängen des Root-FS verwendet werden) werden tmpfs und devfs weiterhin unterstützt.

Ein Netzwerkstack mit Unterstützung für TCP- und UDP-Sockets wird ebenfalls bereitgestellt, Basierend auf der smoltcp-Bibliothek. Der Entwickler hat eine Bootumgebung vorbereitet, die in QEMU oder Firecracker VM mit dem Treiber virtio-net funktioniert, zu der man sich bereits per SSH verbinden kann. Musl wird als Systembibliothek verwendet und BusyBox wird als Benutzerprogramm verwendet. Basierend auf Docker wurde ein Build-System vorbereitet, mit dem Sie Ihren eigenen initramfs-Boot mit dem Kerla-Kernel erstellen können.

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 bereitgestellt, wenn die Genauigkeit von Speicherzugriffen zur Laufzeit bewertet wird. Was ist mehr, glaubt Mozilla, dass Rust Schutz vor Integer-Überläufen bietet, erfordert eine obligatorische Initialisierung von Variablenwerten vor der Verwendung, übernimmt standardmäßig das Konzept von Referenzen und unveränderlichen Variablen, bietet eine starke statische Typisierung, um logische Fehler zu minimieren, und vereinfacht die Eingabeverarbeitung durch den Abgleich von Mustern.

Unter den Vorteilen heben wir die integrierten Tools hervor, um die Qualität des Codes zu bewerten und Erstellen von Unit-Tests, die nicht nur auf echter Hardware, sondern auch auf QEMU ausgeführt werden können. Grundsätzlich findet Mozilla Rust einfacher zu debuggen, da der Compiler Fehler ablehnt. Allerdings weisen die Buchten bei Rust auf einige Nachteile hin.

„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 seinem Schöpfer ist es aus diesem Grund, dass Linux-Entwickler, insbesondere Linus Torvalds selbst, sie lehnten die Idee ab, 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«.

Wenn Sie mehr darüber erfahren möchten, können Sie die Details konsultieren im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.