Institut für Verteilte Systeme
- 1:
Projekte. - 2:
Publikationen. - 3:
Lehre. - 4:
Personen. - 5:
Intranet.
Weitere Themen
Praktikum #47 - Betriebssystem im Eigenbau
Praktikum im Hauptstudium / SS 2005 / CS 5850
Angaben
- Dozent
- Prof. Dr. Peter Schulthess
- Betreuer
- Stefan Frenz
- Termine
- Mittwoch, 12-14 Uhr im Raum 121
- SWS / LP
- 2S / 4P
Inhalt
- Entwurf und Implementierung eines schlanken Betriebssystemkerns
- Kommunikation zwischen Betriebssystem und Programmiersprache
- Grundlegende Konzepte des Bootvorgangs eines PC
- Direkte Programmierung der Hardware
Im Rahmen der Veranstaltung wird ein schlankes Betriebssystem für PC-Hardware in der Programmiersprache Java entwickelt. Die Entwicklung geschieht in mehreren aufeinander aufbauenden Stufen: Leere Schleife, einfache Speichervergabe mit New, formatierte Textausgabe, Behandlung von Unterbrechungen, einfache Treiber, Abfangen von Laufzeitfehlern etc.
Gearbeitet wird mit dem Plurix Java Compiler, der Java-Quelltext in Intel-Maschinencode übersetzt. Die Systemarchitektur kann sich am Plurix Betriebssystem orientieren, welches an der Abteilung entwickelt wird. Der Verteilungsaspekt bleibt jedoch unberücksichtigt.
Scheinkriterien
- Regelmäßige Teilnahme an den Besprechungen
- Erfolgreiche Implementierung aller 13 Phasen
- Überzeugendes abschließendes Code-Review
Unterlagen und Software
Teilweise nur innerhalb der Uni Ulm zugreifbar.
| Einführungsfolien | Motivation zum Entwurf schlanker Systeme. |
| Bootvorgang | Beleuchtung des Bootvorgangs mit besonderem Augenmerk auf das Speicherlayout bei Start des PCs und des Plurix-Systems. |
| Software-Paket | Compiler und Runtime-Struktur. |
| Linux-Addon | Compiler für Linux. |
| Compiler-Update | Neuer Compiler für Windows. Linux-Benutzer bitte die bisherige Version verwenden und das jc-Verzeichnis durch das des neuen Windows-Compilers ersetzen. |
| Anleitung | Einführung in Übersetzungsvorgang, Compiler-Besonderheiten, Diskettenerstellung sowie Beschreibung des System-Arrays, das Informationen zu Klassen und Adressen enthält. Aktuelle Version: 1.5 vom 11.03.2005. |
| Pentium Architecture | Zusätzliche Dokumentation von Intel: "Pentium Architecture and Programming Reference". Für Phase 4 des Praktikums ist das Kapitel 14 unter Umständen interessant. |
| Compiler-Manual | Das offizielle Compiler-Handbuch für besonders interessierte Teilnehmer. |
| IDE-Folien | Kapitel 17 der Systemprogrammierung-Vorlesung von 2003 mit den Folien für IDE-Programmierung. |
Phasen
| P1: B8000-Programm | Aufgabenstellung für Phase 1 und Dokumentation zum Aufbau des Bildschirmspeichers. Aktuelle Version: 1.1 vom 11.03.2005. |
| P2: new | Aufgabenstellung für Phase 2 und Angabe der benötigten Änderungen in den Laufzeitstrukturen sowie der Methoden zur Manipulation des Cache-Verhaltens. Aktuelle Version: 1.3 vom 14.03.2005. |
| P3: Output | Aufgabenstellung für Phase 3. Aktuelle Version: 1.1 vom 14.03.2005. |
| P4: Interrupts | Aufgabenstellung für Phase 4 und Dokumentation des Interrupt- und Exception-Handlings. Aktuelle Version: 1.2 vom 14.03.2005. |
| P5: Keyboard | Aufgabenstellung für Phase 5 und kurze Beschreibung des Stationrecords und der Tastenübermittlung. Aktuelle Version: 1.1 vom 14.03.2005. |
| P6: Bluescreen | Aufgabenstellung für Phase 6 und Beschreibung des Stackframes. Aktuelle Version: 1.1 vom 14.03.2005. |
| P7: Main-Loop | Aufgabenstellung für Phase 7. Aktuelle Version: 1.1 vom 14.03.2005. |
| P8: Task-Abbruch | Aufgabenstellung für Phase 8 und Beschreibung einer Funktion zur Stack-Manipulation. Aktuelle Version: 1.2 vom 17.05.2005. |
| P9: PCI-Bus | Aufgabenstellung für Phase 9 und Beschreibung einer Möglichkeit zum Zugriff auf den PCI-Konfigurationsraum. Aktuelle Version: 1.3 vom 27.05.2005. |
| P10: Virtual Memory | Aufgabenstellung für Phase 10 und Beschreibung von PageDirectory, PageTable, CR2- und CR3-Register. Aktuelle Version: 1.2 vom 27.05.2005. |
| P11: Symbolinformationen | Aufgabenstellung für Phase 11 und Beschreibung der vom Compiler erzeugten Symbolinformationen. Aktuelle Version: 1.0 vom 31.05.2005. |
| P12: Textueller Aufruf | Aufgabenstellung für Phase 12 und Beschreibung der Semantik eines textuellen Aufrufs. Aktuelle Version: 1.0 vom 31.05.2005. |
| P13: Eigeninitiative | Die Aufgabenstellung für Phase 13 ist individuell für jede Gruppe. |
