|
|
Betriebssystem-Entwicklung (WS 2015/16)
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 2015/16)
Im Wintersemester 2015/16 halte ich Vorlesungen im Fach
Betriebssystem-Entwicklung mit Literate Programming.
Vorlesungsstart ist am 08.10.2015 um 15:45 Uhr.
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
- 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
- Implementierungsprojekt
|
Aktuelles
[2016/01/07] Andreas Kurz hat ein kleines Tool namens nwIndex entwickelt, das den
Aufbau eines Programms anzeigt. Ein Archiv mit Quellcode und kompilierter Version
für die Entwicklungs-VM finden Sie hier.
[2015/12/01] Die Ergebnisse der Evaluierung sind online. Danke fürs
Mitmachen.
[2015/10/04] Die ersten Foliensätze und das Lehrbuch (freiwillige Zusatzlektüre)
sind online.
[2015/09/17] 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:
- Do. 15:45-17:15, HQ 104: Vorlesung
- Do. 17:30-19:00, HQ 104: Ü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.
# | Tag |
Thema | Folien (pdf), Übungen, Lösungen | Video (mov) |
1 | 08.10.2015 |
Einführung,
Installation Entwicklungs-VM,
Unix- und ULIX-Features (1.*, 2.1-2.16, 3.*);
Übung 1
|
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 (81 MB),
#2 (41 MB)
|
2 | 15.10.2015 |
LaTeX und Literate Programming (4.*);
Übung 2
|
Foliensatz 4:
1-up,
4-up;
Übung 2:
ue02.pdf;
Musterlösung: PDF-Datei,
Quellcode (zip)
|
#1 (86 MB)
|
3 | 22.10.2015 |
Booten, Protected Mode, Speicher (5.*)
|
Foliensatz 5:
1-up,
4-up
|
#1 (96 MB),
#2 (69 MB)
|
4 | 29.10.2015 |
Übung 3 mit Besprechung (Aufg. 5, 6)
|
Übung 3:
ue03.pdf
|
#1 (80 MB)
|
5 | 05.11.2015 |
Rahmen- und Seitenverwaltung (6.*),
Übung 4
|
Foliensatz 6:
HTML,
html.zip,
Druck-PDF;
Übung 4:
ue04.pdf
|
#1 (75 MB),
#2 (58 MB)
|
6 | 12.11.2015 |
Übung 4 (Forts.) mit Besprechung,
Interrupts und Faults (7.1-7.21)
|
Foliensatz 7:
HTML,
html.zip,
Druck-PDF
|
#1 (79 MB)
|
7 | 19.11.2015 |
Interrupts und Faults (7.22-7.36, auf alter-
nativem Foliensatz FOM/V: V1-V46), Übung 5
|
Übung 5:
ue05.pdf
Alternativer Foliensatz FOM/V:
1-up,
4-up
|
#1 (81 MB),
#2 (19 MB)
|
8 | 26.11.2015 |
Übung 5 (Aufg. 10, mit Bespr.), Zwischen-
evaluation, System Calls (8.*), Übung 5
(Aufg. 11, mit Bespr.), Prozesse (9.1-9.7)
|
Foliensatz 8:
HTML,
html.zip,
Druck-PDF
Foliensatz 9:
HTML,
html.zip,
Druck-PDF
|
#1 (58 MB),
#2 (42 MB)
|
9 | 03.12.2015 |
Prozesse (9.8-9.80)
|
--
|
#1 (82 MB),
#2 (72 MB)
|
10 | 10.12.2015 |
Prozesse (9.81-9.92), Übung 6
|
Übung 6:
ue06.pdf
|
#1 (63 MB)
|
11 | 17.12.2015 |
Besprechung zu Übung 6, fork() und
Scheduling (10.*), Einführung ins Projekt
|
Foliensatz 10:
HTML,
html.zip,
Druck-PDF;
Projektaufgaben
|
#1 (90 MB),
#2 (40 MB)
|
24.12.2015-06.01.2016: Weihnachtsferien |
12 | 07.01.2016 |
Projekt
|
13 | 14.01.2016 |
Projekt
|
Abgabe der Projekt-Ausarbeitungen: 07.02.2015 (23:59 Uhr) |
Tafelbilder:
Verzeichnis
Literatur
- H.-G. Eßer, F. C. Freiling: The Design and Implementation of the ULIX Operating System, 2015, PDF-Datei (Lehrbuch zum Kurs)
- 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.
|