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

Steffen Christgau
Prof. Dr. Bettina Schnor


Modulnummern

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

Ort/Termine

Das Seminar findet donnerstags von 12:00 Uhr bis 14:00 Uhr im Raum 03.04.1.02 statt.

Aktuelles
Seminarvortrag 20.07.2017 Max S.: Windows Subsystem for Linux
Seminarvortrag 13.07.2017 Lauris D.: Interaktion zw. Kernel- und Userspace
Jessica O.: Überblick Linux Netzwerk-Stack
Seminarvortrag 06.07.2017 Wolf S.: Zeitmessung
Moritz K.: Synchronisation im Kernel
Themendiskussion 18.05.2017 und 01.06 bis 15.06.2017 Diskussion zu ausgewählten Themen des Linux-Kernels
Folien und wissenschaftliches Schreiben mit LaTeX 11.05.2017, 12:00 Uhr - 14:00 Uhr Universität Potsdam, Raum 03.04.1.02
Tools zur Analyse von Source Code 27.04.2017, 12:00 Uhr - 14:00 Uhr Universität Potsdam, Raum 03.04.1.02
Erste Veranstaltung mit Themenvergabe 20.04.2017, 12:00 Uhr - 14:00 Uhr Universität Potsdam, Raum 03.04.1.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), bearbeitet von Wolf S.
  8. Synchronisation im Kernel (UTLK Kapitel 5, LKA Kapitel 5, LKD Kapitel 9 + 10), bearbeitet von Moritz K.
  9. Kernel/Userspace-Interaktion (UTLK Kapitel 10 + 11, LKA Kapitel 10, LKD Kapitel 5), bearbeitet durch Lauris D.
  10. Network Stack Overview (ULNI Kapitel 2, 10, 11, 13), bearbeitet durch Jessica O.
  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), ggf. bearbeitet durch Max S.
    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