Kommentar: Rust im Linux-Kernel – handeln statt jubeln!

Der Einzug in den Linux-Kernel sollte dem bisher zögerlichen Einsatz von Rust in Unternehmen Rückenwind geben. Gut so, findet Rainald Menge-Sonnentag.

In Pocket speichern vorlesen Druckansicht 292 Kommentare lesen
Rust
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag

Jetzt startet Rust endlich richtig durch!? Linus Torvalds rechnet noch dieses Jahr mit der Integration in den Linux-Kernel. Die Idee steht seit einigen Jahren im Raum. Um es klarzustellen: Es geht nicht darum, C komplett zu ersetzen, sondern zunächst den Weg für Rust zu öffnen. Dazu benötigt die Sprache geeignete Schnittstellen unter anderem für Kernel-Mutexes und Device-Treiber, deren Entwicklung in der gemeinsamen Verantwortung der Linux- und der Rust-Community liegt.

Ein Kommentar von Rainald Menge-Sonnentag

Rainald Menge-Sonnentag ist leitender Redakteur bei heise Developer und iX. Als Jugendlicher programmierte er ZX Spectrum und VC 20 in Basic und Assembler. Später kamen zwar Pascal, C++, Java und C# hinzu, aber heute fehlt ihm leider weitgehend die Zeit zum Programmieren. Von ein paar Versuchen mit TypeScript, Kotlin und Rust hält ihn das aber nicht ab.

Rust im Linux-Kernel ist schon deshalb eine gute Idee, weil die Programmiersprache anders als C von Anbeginn auf Security ausgelegt war. Vor allem vermeidet sie Speicherfehler, die für den Großteil der Sicherheitslücken in Software verantwortlich sind. Dabei drückt kein Garbage Collector die Performance. Das strikte Ownership-Konzept, bei dem jedes Objekt nur einen Besitzer hat, sichert nicht nur die Speicherverwaltung ab, sondern verhindert auch Fehler in nebenläufigem Code. Darüber hinaus kennt Rust keinen Null-Wert und damit auch keine Null-Pointer-Exceptions.

Über die Vorteile herrscht weitgehend Einigkeit. Zum siebten Mal in Folge ist Rust im Juni in der jährlichen Stack-Overflow-Umfrage zur beliebtesten Programmiersprache gekürt worden. Google, AWS, Microsoft und Meta preisen sie auf ihren Blogs. Zahlreiche Projekte und Firmen setzen zunächst für einige Module auf Rust oder steigen schrittweise von C auf Rust um.

Was jedoch fehlt, ist ein großes Leuchtturmprojekt jenseits des Rust-Initiators Mozilla. Linux wäre genau der passende Vorreiter: Wenn die Betriebssystemschicht auf Rust setzt, werden vermutlich weitere Anwendungen dem Vorbild folgen.

iX Newsletter: Monatlich spannende Hintergründe zur neuen Ausgabe

Kennen Sie schon den kostenlosen iX-Newsletter? Jetzt anmelden und monatlich zum Erscheinungsdatum nichts verpassen: heise.de/s/NY1E In der nächsten Ausgabe geht's ums Titelthema der August-iX: professionelle Hardware vom Refurbisher.

Erwartungsgemäß ertönen einige Unkenrufe: Schon die angedachte Integration von C++ in den Linux-Kernel vor zwanzig Jahren sei gescheitert. Dabei gibt es zwei entscheidende Unterschiede zu Rust. Das objektorientierte C++ erlaubt zwar übersichtlicheren Code als C, der allerdings Overhead mitbringt. Wichtiger noch: Speicherfehler lassen sich in C++ ebenso fatal programmieren wie in C, wenn auch eleganter.

Andere verweisen darauf, dass Rust durchaus unsicheren Code erlaubt. Das ist richtig. unsafe-Blöcke und Raw Pointer, die null sein dürfen, existieren unter anderem, um das Zusammenspiel mit C zu ermöglichen. Der große Unterschied zu anderen Programmiersprachen ist jedoch, dass Rust standardmäßig sicher ist und das Umgehen der Vorgaben explizite Angaben im Code erfordert.

Und ja, das Einarbeiten in die Konzepte von Rust bedeutet einen gewissen Mehraufwand. Aber fast jeder anfangs ärgerliche Compilerfehler ist ein später verhinderter Runtime Error. Auf die Dauer schmerzen Fehlermeldungen beim Entwickeln deutlich weniger als Bugs im Betrieb.

In der Rust-Community heißt es, der Einsatz finde derzeit vor allem in Closed-Source-Projekten im Hintergrund statt. So setze ein großer Spielehersteller auf Rust, aber nicht für die Game-Engine, sondern für das interne Backend. Viele Unternehmen stünden derzeit an der Startlinie und warteten darauf, dass jemand anders den ersten Schritt tut.

Vielleicht hören diese Firmen den Startschuss, sobald der erste Schritt der Integration in den Linux-Kernel kommt. Vorbereiten sollten sich Unternehmen schon jetzt, denn ein Team, das nächstes Jahr produktiven Code schreiben will, muss heute mit dem Training beginnen.

Bei diesem Kommentar handelt es sich um das Editorial der kommenden iX 8/22, die am 21. Juli erscheint.

(rme)