|
|
Betriebssystem-Entwicklung (WS 2014/15)
Hier finden Sie Informationen und Material zu meiner Vorlesung
"Betriebssystem-Entwicklung mit Literate Programming"
an der TH Nürnberg.
Betriebssystem-Entwicklung mit Literate Programming (WS 2014/15)
Im Wintersemester 2014/15 halte ich Vorlesungen im Fach
Betriebssystem-Entwicklung mit Literate Programming.
Vorlesungsstart ist am 21.10.2014 um 15:45 Uhr, also erst in der
dritten Semesterwoche! Die Termine 07.10. und 14.10. entfallen
zunächst und werden im Laufe des Semesters nachgeholt.
Unterlagen benötigen Sie zunächst keine; ich stelle im Laufe des
Semesters die verwendeten Vorlesungsfolien im PDF-Format bzw. in
Form von HTML-Folien (in zip-Archiven) zum Download
zur Verfügung. Übungsblätter bringe ich
als Ausdrucke mit.
Für die Bearbeitung der Aufgaben brauchen Sie ein Linux-System (echt
oder in einer virtuellen Maschine), in dem
u. a. die Entwicklungsumgebung (Compiler, make etc.) sowie der
Emulator qemu installiert sind. Ein für die Entwicklung geeignetes
Linux-Image für VirtualBox stelle ich zu Beginn der Veranstaltung
zur Verfügung.
Zum Leistungsnachweis: Sie werden im Rahmen des Praktikums Teile
des kleinen, Unix-ähnlichen Betriebssystems ULIX mit Hilfe von
Literate Programming implementieren und dokumentieren und die dabei
entstehende
Ausarbeitung nach Ende der Vorlesungszeit einreichen.
Voraussetzungen
Hilfreiche Vorkenntnisse sind Programmiererfahrung in C (wie sie z. B.
in meiner Vorlesung Systemprogrammierung Unix/Linux eingeübt wurden)
sowie die grundlegende Theorie der Betriebssysteme. Wer bereits
LaTeX-Kenntnisse hat, findet zudem einen schnelleren Einstieg, die
Teilnahme ist aber auch ohne LaTeX-Erfahrungen möglich.
Inhalte
Die folgende Themenplanung ist provisorisch und ändert sich
evtl. im Laufe des Semesters.
- Einleitung
- Einführung in C und die Linux-Shell Bash
- Features eines Unix-Systems (Überblick)
- LaTeX und Literate Programming
- Booten, Protected Mode, Speicher
|
- Interrupts, Faults und System Calls in Ulix
- Prozesse; fork()-Implementierung im Kernel
- Dateisysteme
- Implementierungsprojekt
|
Aktuelles
[2015/01/13] Eine Vorabversion des "Cheat-Sheet" für Ulix ist
jetzt online.
[2014/12/10] Die morgige Vorlesung (11.12.2014) muss leider entfallen; es wird dafür auch
keinen Ersatztermin geben. Weiter geht es am 16.12.
[2014/12/02] Die Ergebnisse der Evaluation sind online. Danke fürs
Mitmachen!
[2014/10/21] Die ersten Foliensätze stehen jetzt zur
Verfügung.
[2014/09/24] Bitte denken Sie daran, am ersten Tag (in der zweiten Doppelstunde) Ihr eigenes
Notebook mitzubringen, da Sie dann darauf die Entwicklungs-VM installieren werden.
Material
Termine:
- Di. 15:45-17:15, HQ 305: Vorlesung
- Di. 17:30-19:00, HQ 305: Übung
Die Folien können Sie -- bei PDF-Dateien -- in zwei Varianten herunterladen: 1-up
(eine Folie pro A4-Seite) und 4-up (vier Folien pro A4-Seite). Die meisten
Foliensätze stehen als HTML-Datei zur Verfügung.
Das Ulix-Buch finden Sie unter dem folgenden Link:
ULIX-Book-2014WS.pdf.
Beim Klick auf den Link müssen Sie sich anmelden. Die Zugangsdaten erhalten Sie in der Vorlesung. Bitte geben Sie dieses Buch nicht weiter, stellen es nicht online etc.
# | Tag |
Thema | Folien (pdf), Übungen, Lösungen | Video (mov) |
- | 07.10.2014 | entfällt! Ersatztermin: s.u. |
- | 14.10.2014 | entfällt! Ersatztermin: s.u. |
1 | 21.10.2014 |
Einführung
Installation Entwicklungs-VM,
Unix- und ULIX-Features (1.*, 3.*)
|
Foliensatz 1:
1-up,
4-up
Foliensatz 2:
1-up,
4-up (ggf. Selbststudium)
Foliensatz 3:
1-up,
4-up;
Übung 1:
ue01.pdf
|
#1 (105 MB),
#2 (22 MB)
|
2 | 28.10.2014 |
LaTeX und Literate Programming (4.*) |
Foliensatz 4:
1-up,
4-up;
Übung 2:
ue02.pdf;
|
#1 (89 MB)
|
3 | 04.11.2014 |
Booten, Protected Mode, Speicher (5.1-5.30) |
Foliensatz 5:
1-up,
4-up;
Übung 3:
ue03.pdf
|
#1 (105 MB)
|
4 | 11.11.2014 |
Speicher (5.31-5.44), Rahmen- und Seitenverwaltung (6.*) |
(Foliensatz 5, Rest)
Foliensatz 6:
HTML,
html.zip,
Druck-PDF |
#1 (88 MB),
#2 (65 MB)
|
5 | 18.11.2014 |
Besprechung der Übung 3; Übung 4; Interrupts und Faults (7.*) |
Vorab-Lektüre: S. 113-137 (ohne "Exercises")
Foliensatz 7:
HTML,
html.zip,
Druck-PDF
Übung 4:
ue04.pdf,
Musterlösung
|
#1 (32 MB),
#2 (53 MB)
|
6 | Do. 20.11.2014 (HQ 305) |
Besprechung der Übung 4,
System Calls (8.*) |
Foliensatz 8:
HTML,
html.zip,
Druck-PDF
Übung 5:
ue05.pdf
|
#1 (98 MB)
|
7 | 25.11.2014 |
Prozesse (9.1-9.44), Zwischenevaluation, Übung 5 (Forts.) |
Vorab-Lektüre: S. 141-182 (Kap. 6.1-6.3)
Foliensatz 9:
HTML,
html.zip,
Druck-PDF
|
#1 (69 MB),
#2 (52 MB)
|
8 | 02.12.2014 |
Besprechung von Evaluation und Übung 5,
Video zu Aufg. 9 b,
Prozesse (9.45-9.92) |
Übung 6:
ue06.pdf
|
#1 (93 MB),
#2 (33 MB)
|
9 | 09.12.2014 |
fork() und Scheduling (10.*), Übung 6 (Forts.) |
Vorab-Lektüre: S. 191-199 (Kap. 6.5) und S. 256-265 (Kap. 8.3; ohne Kap. 8.3.3)
Foliensatz 10:
HTML,
html.zip,
Druck-PDF
|
#1 (78 MB)
|
| Do. 11.12.2014 | entfällt! Ohne Ersatz |
10 | 16.12.2014 |
Besprechung zu Übung 6; Dateisysteme (11.*); Übung 7 |
Foliensatz 11:
1-up,
4-up;
Übung 7:
ue07.pdf
|
#1 (89 MB)
|
11 | 23.12.2014 |
Einführung ins Projekt |
Projektaufgaben
|
#1 (51 MB)
|
(06.01.2015: Feiertag, außerdem Weihnachtsferien 24.12.-06.01.) |
12 | 13.01.2015 | Projekt |
13 | 20.01.2015 | Projekt |
(Ende der Vorlesungszeit: 23.01.2015) |
Abgabe der Projekt-Ausarbeitungen: 11.02.2015 (23:59 Uhr) |
Literatur
- H.-G. Eßer, F. C. Freiling: The Design and Implementation of the ULIX Operating System, 2015 (noch nicht veröffentlicht)
- F. Mittelbach, M. Goossens: Der LaTeX-Begleiter, 2010, ISBN: 386894088X
- D. E. Knuth: Literate Programming, The Computer Journal, 27(2), pp. 97-111, 1984,
PDF-Datei
- N. Ramsey: Literate Programming Simplified, IEEE Software, 11(5):97-105, 1994,
PDF-Datei
- N. Ramsey: A One-Page Guide to Using noweb with LaTeX,
PDF-Datei
- A. S. Tanenbaum, A. S. Woodhull: Operating Systems Design and Implementation, 3rd edition, ISBN 0131429388 bzw. 0135053765 (Taschenbuch)
- W. R. Stevens, S. A. Rago: Advanced Programming in the Unix Environment, 2013, ISBN 0321637739
- Helmut Herold: Linux/Unix Systemprogrammierung, 2004, ISBN: 3827321603
- Elias Fischer: Das C-Tutorial
- Ted Jensen: A Tutorial on Pointers and Arrays in C, 2003
Evaluation, MeinProf...
Ich evaluiere alle Veranstaltungen. Zu den verschiedenen Vorlesungen finden Sie
die Auswertungen der Evaluationen
auf einer separaten Seite.
Unabhängig von den regelmäßigen Evaluierungen würde ich mich freuen, wenn Sie
meine Veranstaltung auch auf MeinProf.de bewerten; mein Profil finden Sie
hier.
|