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

Milestone no. Past days CWSorted ascending Goals target accomplished wrench
1 DONE     Portierung QEMU accomplished
2 DONE     Konzept Kernel & HAL accomplished
3 DONE     Implementierung accomplished (3/7 exercises)

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

  • Abschluss Port

Next Steps

  • Teil 2 (Kernel) beginnen

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

  • N/A

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

  • Review

Problems

  • N/A

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

  • N/A

Problems

  • N/A