Entwicklung eines Mikrokernelsystems zur Unterstützung der Lehre
worked on by: Leonard König
Outline
Diese Arbeit beschäftigt sich mit der Konzipierung eines für die Lehre
geeigneten Betriebssystemkernels. In diesem Kontext liegt der Fokus nicht
auf breite Einsetzbarkeit des entwickelten Systems auf echten Rechnern,
sondern auf die Einbettung in das vorhandene didaktische Konzept des Kurses
„Betriebssysteme“. Diese anderen Anforderungen und der eingeschränkte Use-
Case erzwingen aber auch ermöglichen einige radikale Designentscheidungen
die in dieser Arbeit behandelt und erläutert werden. Darüber hinaus wird
die im Kurs eingesetzte Virtualisierungslösung QEMU auf einen aktuellen
Stand gebracht.
Thesis Requirements
- Beispiellösung mit aufeinander aufbauendem Code, durchstrukturiert
- gute Dokumentation dieses
- Evaluierung von auf aus didaktischen Gründen besonders "einfachen" Patters beim Kerneldesign
- moderne stabile QEMU-Lösung
Milestones and Planning
Weekly Status
Week 1-2 (CW 47-48)
Activities
- Diskussion des Themas + Anmeldung
- Sichtung QEMU Patches + Integration in Git
- Portierungsarbeit
- Testen (mit div. Kerneln von BL zur Verfügung gestellt)
- Aufräumen
Results
Next Steps
Problems
- Bug in QEMU aus ARMv8 ELs
Week 3 (CW 49)
Activities
- Konzept Aufbau des Kernels
- Darauf aufbauend Quellcodestruktur und BuildSystem
- Implementation Aufgabenzettel 1 & 2
- Dokumentation Aufbau und Zettel 1
- Vorstellungsvortrag im Seminar
Results
- Initiales Design eines Kernels mit HAL
Next Steps
- Weitere Aufgaben implementieren
Problems
Week 4-6 (CW 50-2)
Activities
- Konzept für Interrupts und Aufrufe des HALs in das System
- Einige dieser Konzepte ausprobiert
- Auslagerung der Buffering-Funktionalität der USART aus dem HAL
Results
- Initiales Design einer entsprechenden Schnittstelle
- Probleme am Design gefunden
- Unvollständiges System, aber kompletter HAL
Next Steps
- Verfeinern
- System-Teil implementieren
Problems
- Aufrufe aus den Exceptions in das System sind asynchron und erfordern sehr flexibles Interface
- Bedeutet mehr Funktionalität auslagern; HAL-Treiber enthalten keinen eigenen Status
- Es muss eine asynchron-aufrufbare Schnittstelle im System geschaffen werden
Week 7-9 (CW 1-3)
Activities
- Abschluss Kernel
- Beginn Ausarbeitung
- Abgrenzung und Problembeschreibung
Results
- Struktur der Ausarbeitung
- Beschreibung Aufbau des Kernels
- Intro
- Evaluation
- QEMU-Teil
- Erster Entwurf
Next Steps
Problems
Week 10-11 (CW 4-5)
Activities
- Review, Rücksprache mit BL
- Umstrukturierung
Results
- Konzept zur Umstrukturierung
- Bessere Einleitung
- Motivation
Next Steps
- Im eigentlichen Bearbeitungsteil mehr Bezug nehmen auf die jetzt genannten einzelnen Übungen
- Ich und passives Schreiben konsequenter nutzen
- Teil 2 und 3 generell noch mehr überarbeiten
- Quellen erweitern
- Begriffserklärung aus Intro streichen
- Didaktischer Aufbau der Aufgaben
Problems
- Wenig "roter Faden"
- Ziel und Didaktik besser machen
- Besser motivieren
Week 12 (CW 6)
Activities
- Begrifferklärung im Appendix
- Tilgung von "wir" und "uns"
- etwas mehr betont, warum dieses Board
- Didaktischer Anspruch der Aufgaben und Aufbau aufeinander mehr erläutert
- Etwas bessere Verknüpfung von Anforderungen und Lösung - "beispielhaft an Aufgabe 1" - "darin konkret Build-System & HAL"
- Virtueller Speicher vs. Virtueller Adressraum
- Klareres Ziel der Arbeit und des Systems (Panik nehmen, etc.)
- Review & Rechtschreibung
- Begriffe aus Veranstaltung etwas mehr/besser eingesetzt
- Bewertungsmaße endlich richtig ausformuliert und Bezug genommen
Results
- Bessere Einleitung
- Aufgeräumterer Text
Next Steps
- Ich und passives Schreiben konsequenter nutzen #2
- Teil 2 und 3 generell noch mehr überarbeiten
- Quellen erweitern
- Review
Problems
- "majestetisches wir" in BA eher unüblich
- Unklarheiten
Week 13 (CW 7)
Activities
- Quellen erweitert
- Rechtschreibung und Formulierungen überarbeitet
- Titel, Abstract & Abgabe
Results
- Konsistenter
- Fertige Arbeit
Next Steps
Problems