Title Entwicklung von Kernelkompomenten in Rust am Beispiel eines Dateisystemtreibers Authors Luca Kleinschmidt, Jonas Dittrich, Clemens Tiedt, Andreas Grapentin, Andreas Polze E-Mail andreas.grapentin@hpi.uni-potsdam.de Affiliation Operating Systems and Middleware Group, Hasso Plattner Institute, University of Potsdam, Germany Abstract Durch die Bestrebungen des Rust for Linux Projekts wird seit 2022 im Linux-Kernel die Implementierung von Kernelmodulen in der Programmiersprache Rust offiziell unterstützt. Allerdings sind bis jetzt nur kleinere Beispielmodule in Rust implementiert, die die Verwendung einzelner Kernel-Schnittstellen veranschaulichen. Deshalb sehen wir die Umsetzung eines größeren Kernelmoduls in Rust als nächsten wichtigen Schritt an, um die Unterschiede zur Entwicklung in C zu verdeutlichen und aufzuzeigen, welche weiteren Abstraktionen noch für den produktiven Einsatz von Rust im Kernel umgesetzt werden müssen. Im Rahmen der Lehrveranstaltung Betriebssysteme II führen wir seit 2019 jährlich Projekte durch, die sich auch mit der Entwicklung von Linux Kernelkomponenten in Rust befassen, am konkreten Beispiel von Dateisystemtreibern. Zuletzt wurde in diesen Projekten ein FAT-Treiber basierend auf der existierenden C implementierung neu geschrieben, der im aktuellen Stand in der Lage ist, ein FAT-formatiertes Gerät einzuhängen und Verzeichnisinhalte anzuzeigen. In unseren Projekten haben wir beobachten können, wie sich die vorhandenen Abstraktionen zur Entwicklung von Rust im Kontext des Linux Kernels über die Zeit verändert und weiterentwickelt haben, in Wechselwirkung mit den Anforderungen der Programmierer an die Schnittstellen. In diesem Vortrag wollen wir auf einige dieser Veränderungen eingehen, und einen Überblick über die junge Geschichte der Rust Abstraktionen im Linux Kernel geben, wie wir sie aus der Perspektive der Dateisystemtreiber erlebt haben. Language of the Presentation German