Programmieren mit Rust für den FreeBSD-Kernel

Treiber in Rust schreiben statt in C? Nach Linux soll das jetzt auch in FreeBSD möglich werden.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Lesezeit: 1 Min.

Der FreeBSD-Entwickler David Young hat Code geschrieben, der es ermöglicht, Kernelmodule für FreeBSD in Rust statt in C zu schreiben. Die Gründe dafür sind dieselben wie beim Linux-Kernel, der demnächst offizielle Rust-Unterstützung erhalten soll: Rust erlaubt wie C eine systemnahe Programmierung, bietet aber moderne Schutzmechanismen gegen viele Programmierfehler, wie sie in C leicht passieren – speziell Speicherfehler, die für viele Schwachstellen in Software verantwortlich sind.

Das Crate (Rust-Bezeichnung für Bibliothek) kernel-sys stellt Rust-Bindings für die Headerfiles des FreeBSD-Kernels bereit, die die Kernel-Schnittstellen für Treiber definieren. Das Crate bsd-kernel liefert Abstraktionen, die für eine Rust-freundlichere API sorgen. Ein sehr einfaches Demo-Modul zeigt, dass das Schreiben von BSD-Treibern in Rust damit grundsätzlich funktioniert. Nächster Schritt müsse jetzt die Entwicklung eines einfachen sinnvollen Kernelmoduls im Rust sein, schreibt Young.

Young stellt den Code mit einer knappen Anleitung auf GitHub bereit. In dem Blogbeitrag Writing FreeBSD Kernel Modules in Rust erläutert er seine Gründe und die technischen Details.

(odi)