Die Vorlesung Betriebssysteme behandelt die verschiedenen Aufgaben eines modernen Betriebssystemkerns. Als Beispiel dient das Betriebssystem Linux. Im Praktikum wird die betriebssystemnahe Programmierung in C/C++ mittels kleinerer Übungsaufgaben vertieft.

Inhalt der Vorlesung:
> Aufgaben von Betriebssystemen
> Grundlegendes zum Betriebssystem Linux
> Prozessbegriff und Prozesszustände, Prozesssteuerung in Linux
> Threads
> Scheduling-Strategien
> Prozesssynchronisation
> Erzeuger-/Verbraucher-Problem, Wechselseitiger Ausschluss
> Prozesskooperation
> Interprozesskommunikation in Linux
> Arbeitsspeicherverwaltung, Partitionierung, Swapping, Virtuelle Speicher
> Belegungs- und Ersetzungsstrategien
> Speicherverwaltung in Linux
> Dateisysteme, Linux-Dateisystem exr2, virtuelles Dateisystem in Linux
> Ein-/Ausgabe und Linux Gerätetreiber

Labor Systemprogrammierung:
> Einführung in das Betriebssystem Linux
> Makefiles
> Shared Memory
> Threads
> Prozesssynchronisation mittels Semaphoren
> Interprozesskommunikation mittels Message Queues


1. Kryptographie für eingebettete Systeme
> Grundlagen der Kryptographie (AES, RSA, ECC)
> Seitenkanalangriffe
> Fault-Induction-Angriffe

2. Sichere Hardware
> Trusted Platform Module (TPM)
> ARM Trustzone
> Hardwaresicherheitsmodule (HSM)
> Physical Unclonable Functions (PUF)

3. Methoden zur Authentifizierung und Autorisierung
> Protokolle zur Authentifizierung mit Hardware-Token
> Biometrische Verfahren
> Zugriffskontrolle in Betriebssystemen