BIN005: Systemsoftware

Einführung in die Informatik

BIN005: Systemsoftware

Kurzporträt BIN005: Systemsoftware
Worum geht es? Das Modul zeigt, was zwischen Quelltext, ausführbarem Programm und Betriebssystem passiert. Die Studierenden arbeiten mit systemnahen Programmen, Werkzeugketten, Prozessen, Dateien und Schnittstellen eines Unix-/Linux-ähnlichen Systems. Dadurch wird sichtbar, wie Programme auf Systemebene ausgeführt und beobachtet werden.
Wofür braucht man es? Systemsoftware-Kenntnisse werden überall dort gebraucht, wo Programme zuverlässig, effizient oder sicher mit Betriebssystemressourcen umgehen müssen. Sie sind wichtig für Betriebssysteme, IT-Sicherheit, Embedded Systems, DevOps und die Analyse technischer Fehler. Das Modul schafft dafür eine praktische Grundlage.
Wieso ist es interessant? Viele Eigenschaften von Software werden erst verständlich, wenn man unter die Oberfläche schaut. Warum ein Programm startet, wie Prozesse entstehen, wie Dateien und Speicher funktionieren oder wie Werkzeuge Fehler sichtbar machen, wird hier praktisch erfahrbar. Das macht Software weniger zur Blackbox.
Modulverantwortung

Prof. Dr. Jens Brandt

Lehrperson(en)

Prof. Dr. Jens Brandt

Verwendbarkeit

Bachelor Informatik

Fächergruppe

Informatik

Modultyp
Pflicht
Sprache

Deutsch

Angebot

jedes Semester

Dauer

1 Semester

Credits

5 ECTS

Benotung

Deutsche Notenskala 1-5

SWS

2 V | 2 Ü | - P | - S

Workload
Präsenzstudium: 45 Std. Selbststudium: 90 Std.
Engl. Titel

System Software

Empfohlene Voraussetzungen

Keine angegeben.

Lernergebnisse / Kompetenzen
WAS

Mit erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, das Zusammenwirken von systemnahen Programmen, Toolchain und Betriebssystem-Schnittstellen zu erklären, zu untersuchen und in einfachen Programmen zu nutzen.

WOMIT

Die Studierenden erreichen dieses Lernergebnis, indem sie

  • Programme in einer Unix-/Linux-ähnlichen Umgebung analysieren,
  • einfache systemnahe Programme in C entwickeln und debuggen,
  • den Weg von Quelltext bis zum laufenden Prozess nachvollziehen,
  • Betriebssystemabstraktionen praktisch verwenden,
  • Werkzeuge zur Systembeobachtung einsetzen.
WOZU

Die Studierenden nutzen diese Kompetenzen, um die Ausführung und das Verhalten von Programmen auf Systemebene nachvollziehen und einfache systemnahe Software entwickeln und beurteilen zu können. Dies bildet eine Grundlage für spätere Aufgaben in Betriebssystemen, hardwarenaher Entwicklung, IT-Sicherheit und technischer Fehlersuche.

Inhalte
  • Userland, Kernel und Betriebssystem-Schnittstellen
  • Shell, Prozesse, Dateien und Dateideskriptoren
  • C als Sprache für systemnahe Programmierung
  • Compiler, Linker und Loader
  • Speicher, Adressräume und Debugging
  • Systemaufrufe und Fehlerbehandlung
  • Prozessmodell und Scheduling
  • Interrupts und Virtualisierung im Überblick
  • Systemnahes Programmierprojekt
Prüfungsvorleistung

Regelmäßige Bearbeitung von Übungsaufgaben.

Prüfungsleistung

Studien- oder Projektarbeit. Das Prüfungskonzept ist als Hausarbeit in Form eines systemnahen Programmierprojekts mit technischer Dokumentation und Fachgespräch ausgestaltet. Die Nutzung von KI-Werkzeugen ist zulässig, sofern sie in der Dokumentation kenntlich gemacht wird und die Studierenden die abgegebene Lösung fachlich erklären und vertreten können.

Literatur
  • Brian W. Kernighan; Dennis M. Ritchie: The C Programming Language. 2nd edition, Prentice Hall, 1988.
  • Michael Kerrisk: The Linux Programming Interface. No Starch Press, 2010.
  • Randal E. Bryant; David R. O’Hallaron: Computer Systems: A Programmer’s Perspective. 3rd edition, Pearson, 2016.
  • W. Richard Stevens; Stephen A. Rago: Advanced Programming in the UNIX Environment. 3rd edition, Addison-Wesley, 2013.
  • Andrew S. Tanenbaum; Herbert Bos: Modern Operating Systems. 4th edition, Pearson, 2015.