Programmierung: Rust im Linux-Kernel bekommt Async und Netzwerk-Code

Der Betreuer des Projekts, Rust im Linux-Kernel zu etablieren, Miguel Ojeda, hat seine Patch-Serie aktualisiert(öffnet im neuen Fenster) und dabei erstmals Unterstützung für Netzwerk-Code umgesetzt sowie erste Arbeiten am Async-Support vorgenommen. Beides zusammen könnte ein grundlegend neues Programmiermodell im Linux-Kernel etablieren, sofern die Rust-Patches irgendwann im stabilen Hauptzweig landen.
Für die Netzwerkunterstützung sind vor allem einige sehr wichtige und grundlegende Datentypen hinzugekommen. Dazu zählen etwa Typen für IPv4- und IPv6-Adressen sowie Socket-Adressen für IPv4 und IPv6, ein Buffer für Sockets, Namensräume sowie mit TcpListener und TcpStream ein prinzipieller Ersatz für die klassischen Netzwerk-Sockets.
Darüber hinaus ist das Async-Modul von Rust auf den Linux-Kernel adaptiert worden. Damit könnte das Projekt erstmals eine in die Sprache eingebaute Möglichkeit zur asynchronen Programmierung erhalten. Das ist mit C so bisher nicht möglich. Umsetzen lassen soll sich so etwa asynchroner TCP-Socket-Code, was Ojeda auch direkt mit einem Code-Beispiel in Rust illustriert und dieses erklärt. Dazu heißt es, dass der Code sehr ähnlich zu seiner synchronen Variante sei, der sogenannte Executor(öffnet im neuen Fenster) aber noch fehle.
Neu zum Rust-Code hinzugekommen sind außerdem Paketfilter, einige Locking-Mechanismen, eine einfache Mutex-Variante, die weniger Funktionen als das vorhandene C-Pendant bietet, sowie ein neuer Datentyp zu Referenzzählung, der das Definieren von Wrapper für den C-Code erleichtern soll. Möglich ist mit dem Rust-Code nun auch, Dokumentationstests auszuführen. Durch Umbauarbeiten am Code lassen sich so auch Kernel-APIs testen.