|
|
Betriebssystem-Entwicklung (WS 2013/14)
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 2013/14)
Im Wintersemester 2013/14 halte ich Vorlesungen im Fach
Betriebssystem-Entwicklung mit Literate Programming.
Vorlesungsstart ist am 07.10.2013 um 11:30 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
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
[2013/12/19] Die Ergebnisse der Evaluierung sind jetzt online.
Danke fürs Mitmachen!
[2013/10/29] Die Ersatztermine für den 21.10. stehen jetzt fest, wir haben auch
schon Räume dafür (siehe Tabelle).
[2013/10/21] Wichtig: Heute fallen beide Termine wg. Erkrankung aus!
[2013/10/10] Raumänderung: Ab dem nächsten Termin findet die
Veranstaltung in Raum HQ 211 statt.
[2013/10/05] Bitte denken Sie daran, am ersten Tag (zum Nachmittagstermin) Ihr eigenes
Notebook mitzubringen, da Sie dann darauf die Entwicklungs-VM installieren werden.
Material
Termine:
- Mo. 11:30-13:00, HQ 211: Vorlesung
- Mo. 14:00-15:30, HQ 211: Übung
Parallel zur Vorlesung entsteht ein Lehrbuch zu Ulix; einzelne Kapitel tauchen
unregelmäßig hier auf.
NEU: Beim Klick auf die Buchkapitel-Links müssen Sie sich anmelden. Die Zugangsdaten erhalten Sie in der Vorlesung.
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 | 07.10.2013 |
Einführung, Vorher-Test *)
Installation Entwicklungs-VM,
Unix- und ULIX-Features
|
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 (85 MB),
#2 (59 MB)
|
2 | 14.10.2013 |
LaTeX und Literate Programming |
Foliensatz 4:
1-up,
4-up;
Übung 2:
ue02.pdf;
Musterlösung: PDF-Datei,
Quellcode (zip)
|
#1 (88 MB)
|
-- | 21.10.2013 |
Termin entfällt; verschoben auf 07.01./08.01. |
3 | 28.10.2013 |
Booten, Protected Mode, Speicher |
Foliensatz 5:
1-up,
4-up;
Übung 3:
ue03.pdf;
|
#1 (91 MB),
#2 (7 MB),
#3 (20 MB)
|
4 | 04.11.2013 |
Speicher, ... |
(Foliensatz 5, Rest)
Foliensatz 6: HTML,
html.zip,
Druck-PDF |
#1 (79 MB),
#2 (49 MB)
|
5 | 11.11.2013 |
Speicher: Paging- und Frame-Verwaltung |
(Foliensatz 6, Rest)
Übung 4:
ue04.pdf
|
#1 (83 MB)
|
6 | 18.11.2013 |
Interrupts und Faults |
Foliensatz 7: HTML,
html.zip,
Druck-PDF
Übung 5:
ue05.pdf
|
#1 (87 MB)
|
7 | 25.11.2013 |
Musterlösung Aufgabe 10 b), System Calls |
Foliensatz 8: HTML,
html.zip,
Druck-PDF
Übung 6:
ue06.pdf
|
#1 (89 MB)
|
8 | 02.12.2013 |
Prozesse (Teil 1), Zwischeneval. |
Foliensatz 9: HTML,
html.zip,
Druck-PDF
|
#1 (67 MB),
#2 (93 MB)
|
9 | 09.12.2013 |
Prozesse (Teil 2) |
(Foliensatz 9, Rest),
Übung 7:
ue07.pdf
|
#1 (60 MB)
|
10 | 16.12.2013 |
Prozesse (Teil 3: fork, Scheduler) |
Foliensatz 10: HTML,
html.zip,
Druck-PDF
(heute keine neue Übung; Rest von Übung 7)
|
#1 (105 MB),
#2 (31 MB)
|
11 | Dienstag, 07.01.2014 |
Dateisysteme (Ersatztermin; 11:30-13:00 Uhr, HQ.412) |
Foliensatz 11:
1-up,
4-up;
Übung 8:
ue08.pdf
|
#1 (62 MB)
|
12 | Mittwoch, 08.01.2014 |
nur Praktikum (Ersatztermin; 09:45-11:15 Uhr, HQ.211) |
Übung 9:
ue09.pdf
|
-- |
13 | 13.01.2014 |
Einführung Projekt, Nachher-Test *) |
Projekt:
projekt.pdf
|
#1 (39 MB)
|
14 | 20.01.2014 |
Projekt, Nachher-Test **) |
-- |
-- |
Vorher- und Nachher-Tests
*)
Um den Erfolg der Veranstaltung zu evaluieren, werde ich am ersten Tag einen "Vorher-Test"
und am letzten Vorlesungstag einen "Nachher-Test" durchführen. Dazu ein paar detailliertere
Informationen:
- Diese Tests sind nicht relevant für die Benotung -- sie haben andere Funktionen:
- Der Vorher-Test hilft mir festzustellen, wie gut Ihre BS-Theorie-Kenntnisse sind (wie sie in
der Vorlesung "Betriebssysteme" vermittelt wurden). Die Ergebnisse aus diesem Test werde ich
u.a. verwenden, um die genauen Inhalte der Veranstaltung festzulegen.
- Der Nachher-Test enthält i.W. dieselben Fragen wie der Vorher-Test. Durch direkten Vergleich
kann ich dann feststellen, wie sich im Laufe des Kurs das Verständnis von BS-Theorie-Konzepten
verändert hat.
- Die Tests sind anonym, aber so gestaltet, dass ich einzelne Vorher- und Nachher-Testbögen
einander zuordnen kann.
- Sie brauchen (und sollen) sich auf diese Tests nicht in irgendeiner Weise vorbereiten,
damit ich den Erfolg der Veranstaltung unverfälscht testen kann.
Bitte helfen Sie mit, dass diese besondere Form der Evaluierung gelingt -- im Wesentlichen, indem
Sie bei den Test-Terminen vor Ort sind und mitmachen (oder bei Verhinderung den Test alleine
durchführen und den Bogen später abgeben). Im Gegenzug biete ich eine sehr intensive
Betreuung während des Semesters.
**)
zweiter Nachtest: Nur für die, die am 13.01. nicht in der Veranstaltung waren
Literatur
- 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.
|