Garber, F. (2025). Rust in the Linux Kernel: Analyzing Rust Implementations of Device Drivers [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.127963
In dieser Arbeit wird die Leistung und der Energieverbrauch von Rust- und C-basierten virtuellen GPIO-Treibern im Linux-Kernel untersucht. Als Versuchsplattform wird ein Raspberry Pi 4 Model B verwendet. Die Forschung zielt darauf ab, die Auswirkungen der Integration von Rust, einer Sprache, die für ihre Speichersicherheitsfunktionen bekannt ist, in der Linux-Kernelentwicklung zu bewerten. Die Ergebnisse zeigen, dass Rust-basierte Treiber zwar mehr Sicherheit und Zuverlässigkeit bieten, aber im Vergleich zu ihren C-Pendants längere Laufzeiten und einen höheren Energieverbrauch haben. Konkret zeigte sich, dass das Rust-Modul eine um 8% längere Ausführungszeit für die Basisvariante, um 11% längere Ausführungszeit mit der Verwendung einer Warteschlange und eine um 14,3% längere Ausführungszeit bei der Verwendung einer Warteschlange und einem Spinlock aufweist. Messungen des Energieverbrauchs ergaben, dass Rust-Module in der Basisvariante 46,15% mehr Energie verbrauchten, 27,68% mehr mit einer Warteschlange und 33,86% mehr mit einer Warteschlange und einem Spinlock. Obwohl das Rust-basierte Modul langsamer war als das C-Äquivalent, könnte Rust immer noch eine brauchbare Alternative zu C sein, da das Debugging im Vergleich zu C einfacher und schneller ist, was auf lange Sicht zu sicherer und stabiler Software führt.
de
This thesis investigates the comparative performance and energy consumption of Rust and C-based virtual General Purpose Input Output (GPIO) drivers in the Linux kernel. For the experimental platform a Raspberry Pi 4 Model B is used. The research aims to evaluate the implications of integrating Rust, a language known for its memory safety features, into the Linux kernel development. The findings reveal that Rust-based drivers, while offering enhanced safety and reliability, have longer execution times and higher energy consumption compared to their C counterparts. Specifically, Rust modules demonstrated an approximate 8% increase in execution time for the basic variant, 11% with the inclusion of a wait queue, and 14.3% with both a wait queue and a spinlock. Energy consumption measurements showed that Rust modules consumed 46.15% more energy in the basic variant, 27.68% more with a wait queue, and 33.86% more with both a wait queue and a spinlock. Although the Rust based module performed slower than the C equivalent, Rust might still be a viable alternative to C, because of easier and quicker debugging compared to C, which in the long run leads to safer and more stable software.
en
Additional information:
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft - Link noch nicht aktiv Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers