Seminar Linux Internals

In den Seminarthemen werden die grundlegenden Konzepte des Betriebssystems Linux behandelt. Darüber hinaus geben einzelne Themen einen Ausblick auf andere Betriebssysteme.


Veranstalter

Dipl.-Math. Petra Vogel


Modulnummern

  • Bachelor Computational Science: 6030
    • 555601 - Modulteilprüfung
    • 555602 - alternativ
  • Master Computational Science: 10020
    • 555201 - Modulteilprüfung
    • 555202 - alternativ

Ort/Termine

Das Seminar findet dienstags von 14:00 Uhr bis 16:00 Uhr im Raum 03.04.0.02 statt.

Aktuelles
Seminarvortrag 21.01.2020 Burkhard K.: Windows Subsystem for Linux
Kira G.: Kernel/Userspace-Interaktion
Jan-Daniel K.: Unterbrechungen und Ausnahmen
Seminarvortrag 14.01.2020 Ilai-Lukas N.: Network Stack Overview
Felix K.: Kompilierung, Linken, Laden und Ausführen von Programmen
Seminarvortrag 7.1.2020 (verschoben vom 17.12.19) Georg D.: Zeitmessung
Seminarvortrag 10.12.2019 Sebastian R.: Scheduling
Themendiskussion 26.11.2019 und 3.12.2019 Diskussion zu ausgewählten Themen des Linux-Kernels
Vortragstechnik und Folien mit LaTeX 12.11.2019, 14:15 Uhr - 15:45 Uhr Universität Potsdam, Raum 03.04.0.02
Tools zur Analyse von Source Code 29.10.2019, 14:00 Uhr - 16:00 Uhr Universität Potsdam, Raum 03.04.0.02
Erste Veranstaltung mit Themenvergabe 15.10.2019, 14:00 Uhr - 16:00 Uhr Universität Potsdam, Raum 03.04.0.02

Materialien


Anforderungen

  • Folienentwurf spätestens zwei Wochen vor dem Vortragstermin vorlegen und Termin zur Besprechung vereinbaren
  • Handout zum Vortrag: max. eine DIN A4 Seite, die die wesentlichen Inhalte des Vortrags zusammenfasst
  • Erfolgreicher Vortrag: max. 45 min. inkl. Code-Review + 15 min. Diskussion)
  • Jeder Vortrag sollte, sofern möglich, ein Code-Review eines im Vortrag diskutierten Aspekts der vorgestellten Software beinhalten
  • Ausarbeitung zwei Wochen nach Vortrag entsprechend den Vorgaben, die im Seminar bekanntgegeben werden.

Die Note setzt sich zusammen aus: 10% Vortragsentwurf, 30% Inhalt, 30% Vortragsstil und 30% Ausarbeitung.


Themenliste

  1. Einführung IA32/AMD64-Architektur und Speicheradressierung (UTLK Kapitel 2)
  2. Verwaltung des Kernelspeichers (UTLK Kapitel 8, LKD Kapitel 12)
  3. Verwaltung des Anwendungsspeichers (UTLK Kapitel 9, LKD Kapitel 12)
  4. Prozesse (UTLK Kapitel 3, LKD Kapitel 3)
  5. Scheduling (UTLK Kapitel 7 teilweise veraltet; siehe auch PLKA und LKD Kapitel 4)
  6. Unterbrechungen und Ausnahmen (UTLK Kapitel 4, LKD Kapitel 7)
  7. Zeitmessung (UTLK Kapitel 6, LKD Kapitel 11)
  8. Synchronisation im Kernel (UTLK Kapitel 5, LKA Kapitel 5, LKD Kapitel 9 + 10)
  9. Kernel/Userspace-Interaktion (UTLK Kapitel 10 + 11, LKA Kapitel 10, LKD Kapitel 5)
  10. Network Stack Overview (ULNI Kapitel 2, 10, 11, 13)
  11. Kompilierung, Linken, Laden und Ausführen von Programmen (UTLK Kapitel 20; LKA Anhang C.1.1, C.1.2, E.1, E.1.4)
    weitere Materialien:
  12. Das Windows Subsystem für Linux (WSL)
    Quellen:

Literatur

Webseite des Linux-Kernels


Source Code des Linux-Kernels


Linux Kernel Development (LKD)
Robert Love
Addison-Wesley Professional, 3. Edition, 2010


Professional Linux Kernel Architecture (PLKA)
Wolfgang Mauerer
John Wiley & Sons, 2008


Understanding the Linux Virtual Memory Manager
Mel Gorman
2007


Understanding the Linux Kernel (UTLK)
Daniel P. Bovet, Marco Cesati
O'Reilly Media, 2006


Understading Linux Network Internals (ULNI)
Christian Benvenuti
O'Reilly Media, 2005


Linux-Kernelarchitektur, Konzepte, Strukturen und Algorithmen von Kernel 2.6 (LKA)
Wolfgang Mauerer
Hanser Verlag, 2004