FreeBSD-Graubärte zu Umstieg auf Rust: You shall not pass

Migration von Code auf Rust ist in immer mehr Projekten ein Thema. Nun diskutiert man auch bei FreeBSD. Die Skepsis über den Nutzen ist aber groß.

In Pocket speichern vorlesen Druckansicht 101 Kommentare lesen

(Bild: Profit_Image/Shutterstock.com)

Lesezeit: 4 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Die FreeBSD-Mailingliste "freebsd-hackers" diskutiert gerade den Vorschlag eines ihrer Entwickler, Teile des FreeBSD-Codes im Basissystem auf Rust umzustellen. Die Chancen dafür scheinen aber gering.

FreeBSD-Entwickler Alan Somers schlug in der FreeBSD-Hackers-Mailingliste vor wenigen Tagen vor, Teile des Basissystems von FreeBSD statt in C/C++ in der Programmiersprache Rust neu zu schreiben. Damit sollen seiner Meinung nach Probleme bei der Entwicklung beseitigt werden, da einige Komponenten einfacher zu programmieren wären – oder es überhaupt erst möglich sei, bestimmte Teile zu entwickeln. Dazu müsse nach "buildworld", mit dem das FreeBSD-Basissystem übersetzt wird, lediglich ein weiterer Compiler-Lauf mit dem Rust-Compiler nötig sein.

Somers liefert eine Liste von Komponenten, die seiner Meinung nach von Rust profitieren würden. Dazu gehören:

  • ctl-exporter: Exportiert FreeBSD-Systemstatistiken zur Verwendung durch Überwachungswerkzeuge.
  • fusefs-Tests: Unit-Tests für die Implementierung des virtuellen Dateisystems FUSE (Filesystem in Userspace).
  • devd: Verwaltet dynamisch Geräteknoten auf Basis der vorhandenen Hardware und deren Konfiguration.
  • zfsd: Primärer Daemon für das ZFS-Dateisystem, der Aufgaben wie Metadatenverwaltung und I/O-Operationen übernimmt.
  • nscd: Name Service Cache Daemon, der DNS- und NIS (Network Information Service)-Aufrufe für einen schnelleren Zugriff zwischenspeichert.

Ferner erwähnt er Komponenten der 802.11ac- und Lightning-Stacks, die im Userspace laufen, also Treiber und Dienstprogramme für die Verwaltung drahtloser Netzwerkschnittstellen. Selbst die Kernel-Programmierschnittstelle (KPI) für FreeBSD Version 14.0 (freebsd-kpi-r14-0), die es Programmen aus dem Userspace ermöglicht, mit dem Kernel zu interagieren, sollen von Rust profitieren.

Als Nachteil müsste das gesamte Rust-Ecosystem samt aller Abhängigkeiten für das Basissystem verfügbar sein, die Zeit für einen Compilerdurchlauf würde sich mindestens verdoppeln und auf schwächeren Architekturen wie dem Raspberry Pi könnte man FreeBSD wohl nicht mehr nativ übersetzen.

In dem Thread "The Case for Rust (in the base system): Alan Somers" auf der FreeBSD-Mailingliste findet dazu gerade eine lebhafte, aber konstruktive Diskussion statt. FreeBSD-Urgesteine wie Poul-Henning Kamp sehen den Vorschlag kritisch, da er weder konkrete Code-Beispiele enthält noch erklärt, was denn genau durch den Einsatz von Rust besser werden soll. Mit Rust hole man sich vor allem ein gigantisches Ecosystem inklusive einer – vorsichtig ausgedrückt – fluktuierenden ABI sowie das Paketsystem crates.io ins Basissystem, wo derart komplexe Werkzeuge eigentlich nicht hingehören – auch wenn sie "cool" sind. Es scheinen laut einiger Kommentare im Thread vor allem Rust-Entwickler zu sein, die Rust in FreeBSD sehen wollen, nicht die eigentlichen FreeBSD-Entwickler.

Es gab und gibt immer wieder Versuche, eine Notwendigkeit für eine Programmiersprache ins Basissystem von FreeBSD zu holen, beispielsweise Java und Perl. Perl beispielsweise flog wieder heraus, weil die Perl-Module riesige Probleme verursachten, ähnliches befürchtet man bei den Rust Crates. Selbst Modula-3 (mit Beispielcode für CVSUP) oder Haskell wurden vorgeschlagen und abgelehnt.

FreeBSD ist ein konservatives Betriebssystem, aber dennoch offen für andere Programmiersprachen, wenn es denn Sinn ergibt. Das antike FORTH beispielsweise wird immer noch für Teile des Loaders benutzt, weil es winzigen Code produziert. Hier aber findet eine Migration in Richtung Lua statt.

Auch wenn in einigen Foren und Kommentarbereichen von Newsseiten die Rust-Enthusiasten jeden, der Somers Vorschlag ablehnt, aggressiv angreifen, stehen die Chancen für die Umstellung sehr schlecht. Insgesamt ist die Migration auf Rust aber ein großes Thema in der Open-Source-Welt. In prominente Projekte wie Linux und Android hat die Programmiersprache bereits ersten Einzug gehalten. Jüngstes Beispiel für Diskussionen über einen möglichen Rust-Einsatz ist Git. Sogar Microsoft hat auf GitHub eine Reihe von Rust-Paketen als Open Source freigegeben, mit denen sich Windows-Treiber in der Sprache schreiben lassen.

(axk)