|
|
Systemprogrammierung (SS 2014)
Hier finden Sie Informationen und Material zu meiner Vorlesung
"Systemprogrammierung Unix/Linux"
an der TH Nürnberg.
Systemprogrammierung Unix/Linux (SS 2014)
Im Sommersemester 2014 halte ich Vorlesungen im Fach Systemprogrammierung Unix/Linux.
Vorlesungsstart ist am 18. März um 15:45 Uhr.
Am ersten Termin an jedem Dienstag (15:45 Uhr) gibt es immer eine
Vorlesung in Raum HQ104, und beim zweiten Termin (17:30) findet
in Raum HQ204 eine Übung statt.
Gegen Ende des Semesters gibt es dann nur noch Übungen.
Unterlagen benötigen Sie zunächst keine; ich stelle im Laufe des
Semesters die verwendeten Vorlesungsfolien im PDF-Format zum Download
zur Verfügung. Übungsblätter bringe ich
als Ausdrucke mit. Wenn Sie im Praktikum ein eigenes Notebook
verwenden möchten, ist das möglich. Darauf sollten dann ein 64-Bit-Linux und die
Entwicklungsumgebung (C-Compiler & Co.) installiert sein. Sie können
aber auch die Linux-PCs im Praktikumsraum nutzen.
Als Prüfungsform finden Sie im Vorlesungsverzeichnis den Eintrag
"Studienarbeit (semesterbegleitende Entwicklung eines Programms mit
abschließendem Kurzvortrag)". Sie werden im Rahmen des Praktikums eine
kleine systemnahe Anwendung unter Linux entwickeln und zum Semesterende
kurz (nach inhaltlicher Absprache) über einen Aspekt Ihrer Lösung
vortragen und Fragen dazu beantworten.
Inhalte
Die folgende Themenplanung ist provisorisch; die exakten Themen
(die nicht genau deckungsgleich mit denen vom letzten Sommersemester
sein werden) hängen von den Projektaufgaben ab. (Es wird neue
Projektaufgaben geben, nicht die alten vom SS 2012 oder 2013.)
- Einleitung
- Einführung in C und die Linux-Shell Bash
- Software und Betriebssystem; System Calls
- Prozesse: fork, exec, wait
- Dateien: open, read, write, close
|
- Fortgeschrittene I/O (dup, pipe, mmap)
- Speicherverwaltung: malloc, free
- Nebenläufigkeit mit POSIX-Threads
- Projekt: Webserver-Implementation
|
Aktuelles
[2014/05/06] Die
Ergebnisse der Zwischenevaluation sind
jetzt online. Danke fürs Mitmachen!
[2014/03/04] Die Termine für das Semester stehen fest.
Material
Termine:
- Dienstags, 15:45-17:15: Vorlesung
- Dienstags, 17:30-19:00: Übung
Die Folien können Sie in zwei Varianten herunterladen: 1-up
(eine Folie pro A4-Seite) und 4-up (vier Folien pro A4-Seite).
# | Tag |
Thema | Folien (pdf), Übungen, Lösungen | Video (mov) |
1 | 18.03.2014 |
Einführung, Organisatorisches (1.*), Crashkurs C / Bash (2.1-2.9) |
Foliensatz 1:
1-up,
4-up
Foliensatz 2:
1-up,
4-up
Übung 1: ue01.pdf,
Code: ue01.tgz
|
#1 (106 MB)
|
2 | 25.03.2014 |
Crashkurs C / Bash (2.9-2.53) |
Übung 2: ue02.pdf
|
#1 (74 MB)
|
3 | 01.04.2014 |
System Calls (3.1-3.31) |
Foliensatz 3:
1-up,
4-up
Übung 3: ue03.pdf,
Code: ue03.tgz
|
#1 (111 MB)
|
4 | 08.04.2014 |
Lösung zu Ü3;
System Calls (3.32-3.36),
Prozesse (4.1-4.12, 4.14-4.16) |
Foliensatz 4:
1-up,
4-up
Übung 4: ue04.pdf,
Code: myps.c
Lösung: myps1.c,
myps2.c
|
#1 (112 MB)
|
5 | 15.04.2014 |
Prozesse (4.17-4.26), Dateien (5.1-5.18) |
Foliensatz 5:
1-up,
4-up
Übung 5: ue05.pdf,
Code: ue05.tgz
Lösung: ue05-loesung.tgz
|
#1 (111 MB)
|
6 | 29.04.2014 |
Dateien (5.19-5.28),
Fortgeschrittene I/O (6.1-6.12, 6.21-6.23) |
Foliensatz 6:
1-up,
4-up
Übung 6: ue06.pdf,
Code: ue06.tgz,
Lösung: ue06-loesung.tgz, Doku:
PDF
|
#1 (100 MB)
|
7 | 06.05.2014 |
Fortgeschrittene I/O (Rest: 6.13-6.20),
Speicher (7.1-7.15, 7.16, 7.17-7.21) |
Foliensatz 7:
1-up,
4-up
Übung 7: ue07.pdf,
Lösung: spsh-ramdisk.c
|
#1 (29 MB),
#2 (70 MB)
|
8 | 13.05.2014 |
Speicher (Rest: 7.22-7.30),
Threads (8.1-8.16) |
Foliensatz 8:
1-up,
4-up,
Übung 8: ue08.pdf;
Link zu Thread/Fork-Artikel
Lösung: ue08-loesung.tgz
|
#1 (106 MB),
#2 (31 MB)
|
9 | 20.05.2014 |
Threads (8.17-8.24), Einführung Projekt (9.*) |
Foliensatz 9:
1-up,
4-up
Projekt (1):
projekt1.pdf,
projekt1.tgz
|
#1 (93 MB)
|
10 | 27.05.2014 |
Projekt (keine Vorlesung) |
Projekt (2):
projekt2.pdf
|
--
|
11 | 03.06.2014 |
Projekt (keine Vorlesung) |
Projekt (3):
projekt3.pdf
|
--
|
12 | 17.06.2014 |
Projekt (keine Vorlesung) |
Projekt (4):
projekt4.pdf
|
--
|
13 | 24.06.2014 |
Projekt (keine Vorlesung) |
--
|
--
|
14 | 01.07.2014 |
Präsentationen |
|
|
15 | 03.07.2014 |
(Donnerstag; 15:45-19:00; Raum HQ 104) Präsentationen |
|
|
Literatur
- Helmut Herold: Linux/Unix Systemprogrammierung, 2004, ISBN: 3827321603
- Richard Stevens und Stephen A. Rago: Advanced Programming in the Unix Environment, ISBN: 0321525949 (2005), 0321637739 (neue Auflage 2013)
- 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.
Hier ist der
direkte Link zur Kursseite bei meinprof.de.
|