Programmierung: Rust im Linux-Kernel bekommt Async und Netzwerk-Code
Mit den aktuellen Rust-Patches für den Linux-Kernel bekommt das Projekt ein neues Programmiermodell, das es mit C so nicht gibt.

Der Betreuer des Projekts, Rust im Linux-Kernel zu etablieren, Miguel Ojeda, hat seine Patch-Serie aktualisiert 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 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.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Das ist ja das Problem an C/C++. Du musst erfahren sein und darfst keine Fehler machen...