Technische Universität Braunschweig
  • Study & Teaching
    • Beginning your Studies
      • Prospective Students
      • Degree Programmes
      • Application
      • Fit4TU
      • Why Braunschweig?
    • During your Studies
      • Fresher's Hub
      • Term Dates
      • Courses
      • Practical Information
      • Beratungsnavi
      • Additional Qualifications
      • Financing and Costs
      • Special Circumstances
      • Health and Well-being
      • Campus life
    • At the End of your Studies
      • Discontinuation and Credentials Certification
      • After graduation
      • Alumni*ae
    • For Teaching Staff
      • Strategy, Offers and Information
      • Learning Management System Stud.IP
    • Contact
      • Study Service Centre
      • Academic Advice Service
      • Student Office
      • Career Service
  • Research
    • Research Profile
      • Core Research Areas
      • Clusters of Excellence at TU Braunschweig
      • Research Projects
      • Research Centres
      • Professors‘ Research Profiles
    • Early Career Researchers
      • Support in the early stages of an academic career
      • PhD-Students
      • Postdocs
      • Junior research group leaders
      • Junior Professorship and Tenure-Track
      • Habilitation
      • Service Offers for Scientists
    • Research Data & Transparency
      • Transparency in Research
      • Research Data
      • Open Access Strategy
      • Digital Research Announcement
    • Research Funding
      • Research Funding Network
      • Research funding
    • Contact
      • Research Services
      • Academy for Graduates
  • International
    • International Students
      • Why Braunschweig?
      • Degree seeking students
      • Exchange Studies
      • TU Braunschweig Summer School
      • Refugees
      • International Student Support
    • Going Abroad
      • Studying abroad
      • Internships abroad
      • Teaching and research abroad
      • Working abroad
    • International Researchers
      • Welcome Support
      • PhD Studies
      • Service for host institutes
    • Language and intercultural competence training
      • Learning German
      • Learning Foreign Languages
      • Intercultural Communication
    • International Profile
      • Internationalisation
      • International Cooperations
      • Strategic Partnerships
      • International networks
    • International House
      • About us
      • Contact & Office Hours
      • News and Events
      • International Days
      • 5th Student Conference: Internationalisation of Higher Education
      • Newsletter, Podcast & Videos
      • Job Advertisements
  • TU Braunschweig
    • Our Profile
      • Aims & Values
      • Regulations and Guidelines
      • Alliances & Partners
      • The University Development Initiative 2030
      • Foundation University
      • Facts & Figures
      • Our History
    • Career
      • Working at TU Braunschweig
      • Vacancies
    • Economy & Business
      • Entrepreneurship
      • Friends & Supporters
    • General Public
      • Check-in for Students
      • The Student House
      • Access to the University Library
    • Media Services
      • Communications and Press Service
      • Services for media
      • Film and photo permits
      • Advices for scientists
      • Topics and stories
    • Contact
      • General Contact
      • Getting here
  • Organisation
    • Presidency & Administration
      • Executive Board
      • Designated Offices
      • Administration
      • Committees
    • Faculties
      • Carl-Friedrich-Gauß-Fakultät
      • Faculty of Life Sciences
      • Faculty of Architecture, Civil Engineering and Environmental Sciences
      • Faculty of Mechanical Engineering
      • Faculty of Electrical Engineering, Information Technology, Physics
      • Faculty of Humanities and Education
    • Institutes
      • Institutes from A to Z
    • Facilities
      • University Library
      • Gauß-IT-Zentrum
      • Professional and Personnel Development
      • International House
      • The Project House of the TU Braunschweig
      • Transfer Service
      • University Sports Center
      • Facilities from A to Z
    • Equal Opportunity Office
      • Equal Opportunity Office
      • Family
      • Diversity for Students
  • Search
  • Quicklinks
    • People Search
    • Webmail
    • cloud.TU Braunschweig
    • Messenger
    • Cafeteria
    • Courses
    • Stud.IP
    • Library Catalogue
    • IT Services
    • Information Portal (employees)
    • Link Collection
    • DE
    • EN
    • IBR YouTube
    • Facebook
    • Instagram
    • YouTube
    • LinkedIn
    • Mastodon
Menu
  • Organisation
  • Faculties
  • Carl-Friedrich-Gauß-Fakultät
  • Institutes
  • Institute of Operating Systems and Computer Networks
  • Courses
  • Summer 2025
Logo IBR
IBR Login
  • Institute of Operating Systems and Computer Networks
    • News
    • About us
      • Whole Team
      • Directions
      • Floor Plan
      • Projects
      • Publications
      • Software
      • News Archive
    • Connected and Mobile Systems
      • Team
      • Courses
      • Theses
      • Projects
      • Publications
      • Software
      • Datasets
    • Reliable System Software
      • Overview
      • Team
      • Teaching
      • Theses & Jobs
      • Research
      • Publications
    • Algorithms
      • Team
      • Courses
      • Theses
      • Projects
      • Publications
    • Microprocessor Lab
    • Education
      • Summer 2025
      • Winter 2024/2025
      • Theses
    • Services
      • Library
      • Mailinglists
      • Webmail
      • Knowledge Base
      • Wiki
      • Account Management
      • Services Status
    • Spin-Offs
      • Docoloc
      • bliq (formerly AIPARK)
      • Confidential Technologies
    • Research Cooperations
      • IST.hub

Softwareentwicklungspraktikum: Implementierung eines Subsets der BusyBox Unix-Systemprogramme für Embedded Linux in Rust

Semester
Summer 2025
ProgrammesComputer Science Bachelor, Computer and Communication Systems Engineering Bachelor
IBR GroupVSS (Prof. Dietrich)
TypeTeam Project
Lecturer
Photo
Prof. Dr.-Ing. Christian Dietrich
Abteilungsleiter
dietrich[[at]]ibr.cs.tu-bs.de
+49 531 3913294
Room 135
Assistant
Photo
Dr. Sören Tempel
Wissenschaftlicher Mitarbeiter
tempel[[at]]ibr.cs.tu-bs.de
+49 531 3913292
Room 114
Credits7
Hours0+6
Time & Place TBA
LanguageGerman, English on request
Certificates TBA
Registration TBA

Motivation

Einführung: BusyBox ist eine quelloffene Implementierung der Standard Unix Systemprogramme (ls, grep, find, …) für das Linux Betriebssystem. Im Gegensatz zu den GNU coreutils, welche die Implementierung dieser Programme unter Linux Desktopsystemen bereitstellt, ist BusyBox stark optimiert auf eine kleine Binärgröße und damit vor allem für Embedded Linux geeignet. Aufgrund der Spezialisierung für diesen Anwendungsbereich ist BusyBox auch stark konfigurierbar, einzelne Programme und Features können—je nach Anwendungsbereich—aktiviert oder deaktiviert werden, um die Größe weiter zu reduzieren.

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.

Aufgabe

Um 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.

Umsetzung

Mit Rust soll ein vordefiniertes Subset der BusyBox Systemprogramme implementiert werden. Bezüglich des zu implementierenden Subsets sollen folgende Eigenschaften erreicht werden:

  1. Klein: Ähnliche Binärgröße wie ein BusyBox mit denselben Features.
  2. Konfigurierbar: Einzelne Features und Programme sollen deaktivierbar sein.
  3. Korrekt: Im Bezug auf die POSIX-Spezifikation → Testen gegen BusyBox!

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 Information

Folgende Ressourcen bieten weitere Informationen zu den Technologien die in diesem Projekt verwenden werden:

  • Die BusyBox Webseite
  • Die Webseite der Rust Programmiersprache
    • Rust Kenntnisse werden nicht vorausgesetzt
    • Bei Interesse lohnt sich aber schon mal ein Blick ins Rust Buch
    • Siehe sonst auch: Die Learning Resources auf der Rust Webseite
  • Die POSIX.1-2024 Spezifikation
    • Der Standard bzgl. den oben genannten Unix Systemprogrammen
    • Wie gesagt: Hier soll nur ein Subset Implementiert werden
  • Die BusyBox Integration Test Suite

last changed 2025-06-06, 10:21 by System Account vss-deploy

For All Visitors

Vacancies of TU Braunschweig
Career Service' Job Exchange 
Merchandising

For Students

Term Dates
Courses
Degree Programmes
Information for Freshman
TUCard

Internal Tools

Glossary (GER-EN)
Change your Personal Data

Contact

Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig

P. O. Box: 38092 Braunschweig
GERMANY

Phone: +49 (0) 531 391-0

Getting here

© Technische Universität Braunschweig
Imprint Privacy Accessibility