Nächstes Linux-Rust-Projekt: Dateisystem PuzzleFS startet

Mit PuzzleFS steht ein weiteres Rust-basiertes Projekt für Linux in den Startlöchern. Das Container-Dateisystem soll einige Probleme des OCI-Formats beheben.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen

(Bild: iX)

Lesezeit: 3 Min.
Von
  • Dr. Udo Seidel

Anfang Juni 2023 ist auf der Linux-Kernel-Mailingliste (LKML) eine Patch-Serie für PuzzleFS, ein neues Dateisystem, aufgetaucht. Dessen Entwickler Ariel Miculas ist bei Cisco angestellt und will PuzzleFS in der Programmiersprache Rust umsetzen. Das neue Dateisystem ist für Container gedacht und soll einige Limitierungen des OCI-Formats für Abbilder adressieren. Miculas nennt dabei folgende Ziele: die Reduktion von Duplikaten, die Unterstützung von sogenannten Direct Mounts, das reproduzierbare Bauen von Container-Images und Verbesserung der Speicherverwaltung.

Derzeit kann man PuzzelFS noch höchstens als Prototyp bezeichnen. Einerseits ist es noch nicht Bestandteil des offiziellen Kernel-Quelltextes. Außerdem müssen weitere Patches für andere Bereiche – einer für Dateisystem-Abstraktion, einer, um die Rust-Crates von Dritt-Parteien zu unterstützen – das OK der Entwicklergemeinde um Linus Torvalds bekommen. Auch auf der funktionalen Seite sind die Möglichkeiten von PuzzleFS noch sehr beschränkt. Der Treiber kann eine Verzeichnisstruktur zeigen, hat aber noch keine Nachschlag-Funktion (lookup). Laut Aussagen des Entwicklers sind grundlegende Lesezugriffe möglich. Im Moment ist PuzzleFS als FUSE (Filesystem in User Space) implementiert. Das Ziel ist aber ein Treiber, der im Kernel-Space arbeitet. Die Arbeiten daran laufen schon. Fairerweise muss aber erwähnt sein, dass ein Dateisystemtreiber in Rust für Linux aktuell noch ein sehr ambitioniertes Projekt ist: Die Unterstützung für diese Programmiersprache im Kernel ist immer noch eine große Baustelle.

Die Wahl von Rust ist aber eine direkte Konsequenz der selbst gesteckten Ziele, speziell der verbesserten Speicherverwaltung für OCI-kompatible Container-Images. Die Entwickler sehen mit Rust deutlich bessere Grundvoraussetzungen als bei C. Außerdem soll Rust die Wiederverwendung von Code-Schnipseln erleichtern. Bei PuzzelFS sollte dies insbesondere für Funktionen im Kernel-Space und User-Space möglich sein. Bei der Idee für PuzzleFS stand ein anderes Dateisystem Pate: AtomFS. Dessen Entwickler Tycho Andersen hat nun auch PuzzleFS initiiert.

Obwohl sich PuzzleFS noch in einem sehr frühen Stadium befindet, können Interessierte schon selbst Hand anlegen und tiefer einsteigen. Die Entwickler liefern dazu eine Anleitung in neun Schritten. Neben dem Rust-for-Linux-Kernel werden Busybox und Qemu als virtuelle Maschine und deren Hypervisor benötigt. Im ersten Testlauf bekamen wir das Dateisystem jedoch nicht auf Anhieb zum Laufen. Wir liefern Screenshots aber nach, sobald PuzzleFS funktioniert. Die Diskussion über PuzzleFS auf der LKML ist derzeit im vollen Gänge. Es bleibt abzuwarten, ob das neue Container-Dateisystem rechtzeitig abheben kann. Mehr Details finden sich im Vorschlagsdokument für Version 2 des oben genannten OCI-Formats.

(jvo)