Semester | Summer 2025 |
Programmes | Computer Science Bachelor, Computer and Communication Systems Engineering Bachelor |
IBR Group | VSS (Prof. Dietrich) |
Type | Team Project |
Lecturer | Prof. Dr.-Ing. Christian Dietrich Abteilungsleiter dietrich[[at]]ibr.cs.tu-bs.de +49 531 3913294 Room 135 |
Assistant | |
Credits | 7 |
Hours | 0+6 |
Time & Place | TBA |
Language | German, English on request |
Certificates | TBA |
Registration | TBA |
MotivationEinführung: BusyBox ist eine quelloffene Implementierung der Standard Unix Systemprogramme ( Problemstellung: Um die verfügbaren Systemresourcen möglichst effizient zu nutzen, ist BusyBox in der C Programmiersprache geschrieben. Diese Programmiersprache ermöglicht eine sehr systemnahe Programmierung, hat allerdings den Nachteil, dass verschiedene Sicherheitsgarantien, die wir von modernen Programmiersprachen kennen (z.B. Memory Safety) nicht gewährleistet sind. Daher finden sich in BusyBox immer wieder sicherheitskritische Schwachstellen (z.B. Buffer Overflows), die auf Probleme der C Programmiersprache zurückzuführen sind. Solche Schwachstellen sind besonders kritisch im Bereich der eingebetteten Systeme, wo Updates seltener und schwieriger eingespielt werden können. Das SEP richtet sich an Studierende mit Interesse an Betriebssystemen und systemnaher Programmierung. AufgabeUm die beschriebenen Probleme grundlegend zu verhindern, wollen wir ein Subset von BusyBox in Rust implementieren. Rust ist eine neuartige Programmiersprache für systemnahe Programme die, im Vergleich zu C, verschiedene Sicherheitsfeatures bietet. Durch die Verwendung von Rust können verschiedene, potenziell sicherheitskritische, Programmierfehler (z.B. Buffer Overflows) ausgeschlossen werden. Darüber hinaus bietet Rust verschiedene Abstraktionen, die wir von modernen Hochsprachen kennen, die aber in C nicht verfügbar sind, z.B. Iteratoren oder Algebraische Datentypen. Dies sollten die Implementierung und den Code, im Vergleich zu C, ungemein vereinfachen. UmsetzungMit Rust soll ein vordefiniertes Subset der BusyBox Systemprogramme implementiert werden. Bezüglich des zu implementierenden Subsets sollen folgende Eigenschaften erreicht werden:
Die genannten Eigenschaften sollen über kontinuierliche Tests per GitLab CI/CD sichergestellt werden (Tests, per-Commit Größenvergleich, …). Zum Abschluss des Projektes sollte es möglich sein ein initramfs mit der entstanden Implementierung auszustatten und damit ein Linux Kernel zu booten. Weitere InformationFolgende Ressourcen bieten weitere Informationen zu den Technologien die in diesem Projekt verwenden werden:
|
Vacancies of TU Braunschweig
Career Service' Job Exchange
Merchandising
Term Dates
Courses
Degree Programmes
Information for Freshman
TUCard
Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
P. O. Box: 38092 Braunschweig
GERMANY
Phone: +49 (0) 531 391-0