Seminar: Die Architektur des Linux-Kerns (AKSI)
- Semester:
- Wintersemester
- Anrechenbar im:
- Master
- Leistungspunkte
- 3
- Dozent:
- Daniel Lohmann
- Betreuer:
- Gerion Entrup
- Zeit/Raum:
-
- Dienstag (ab 24.10): 10:15 bis 11:45 Uhr, SRA Seminarraum (Raum 135, Appelstr. 4, 1. OG)
Inhalt
Das Seminar soll Einblicke in die Abläufe der alltäglichen Forscherpraxis geben. Jeder Teilnehmer fertigt eine schriftliche Ausarbeitung und einen Folienvotrag über ein bestimmtes Themengebiet der systemnahen Informatik an. Semesterthema in diesem Jahr ist die Architektur des Linux-Kerns.
Alle Teilnehmenden bearbeiten als Thema einen Teilbereich des Linux-Kerns, wobei die schriftliche Ausarbeitung in Form eines Kapitels in einem (kleinen) Buch geschrieben werden soll und nach der Art der Linux-Kernel-Entwicklung über eine Mailingliste eingepflegt wird. Das Thema orientiert sich dabei auf Buchkapiteln von [LKD] und des aktuellen Quellcodes.
Vorkenntnisse
- Erforderlich
- Vorlesung Betriebssysteme (Grundlegende Kentnisse in Aufbau, Struktur und Funktionsweise eines Betriebssystems)
- Programmieren in C
- Empfohlen
- Vorlesung und Übung Betriebssystembau
- Grundlagen Linux-Kenntnisse
Obwohl es inzwischen mehrere gute Bücher zum Linux-Kern gibt (siehe unten), erfolgt die Auseinandersetzung mit dem Linux-Kern immer noch vorwiegend auf Ebene des Quellcodes. Dieses setzt ein grundlegendes Verständnis von Aufbau und Struktur eines UNIX-Betriebssystems vorraus sowie die Fähigkeit, systemnahen C-Code zumindest lesen zu können.
Modus
Für die Veranstaltung soll ein 30-40 minütiger Vortrag vorbereitet werden. Die Vorträge werden wochenweise vorgestellt. Zusätzlich dazu soll eine schriftliche Zusammenfassung des Themas erstellt werden.
Da wir aber ein Seminar über den Kernel machen, entwickeln wir auch wie im Kernel! Die Ausarbeitungen sind Teil einer Zusammenfassung über den Kernel (unter einer freien Lizenz) und werden offen entwickelt. Darum wird es eine (Seminar-)öffentliche Mailingliste geben und die Ausarbeitungen werden in Form von Git-Commits an diese Mailingliste geschickt, um durch den üblichen Review- und Nachbesser-Prozess zu gehen, bis der Maintainer (Übungsleiter) akzeptiert. Natürlich können und sollen alle anderen auch kommentieren.
Themen
Es wird folgende Vorträge geben (die Daten ab KW 48 können sich noch ändern):
KW | Datum | Thema | Vortragende(r) |
---|---|---|---|
43 | 24.10.2017 | Einführung und Metavortrag „Botschaft angekommen“ | Gerion und Daniel |
44 | 31.10.2017 | Feiertag | Feiertag |
45 | 7.11.2017 | Kernelentwicklung und Benutzung | Gerion |
46 | 14.11.2017 | Prozessmanagement/Scheduling | Jan |
47 | 21.11.2017 | Interrupts/Bottom-Halves | Felix |
48 | 28.11.2017 | Kernel-Synchronisation | Matthias |
49 | 5.12.2017 | Timer und Systemcalls | Gerion |
50 | 12.12.2017 | Memory (Kernel intern) | Sophie |
51 | 19.12.2017 | entfällt | entfällt |
2 | 9.01.2018 | Wie funktioniert Wissenschaft? Lesen, Begutachten und Veröffentlichen von Fachliteratur |
Daniel |
3 | 16.01.2018 | Process Address Space und VFS | Elias |
4 | 23.01.2018 | Block-I/O und Page-Cache | Mathias |
5 | 30.01.2018 | Module und sysfs | Moritz |
Ausarbeitung
Die Ausarbeitung im aktuellen Stadium findet sich hier.
Literatur
Die Themenerarbeitung erfolgt hauptsächlich anhand der folgenden Bücher:
- [LKD] Robert Love: Linux Kernel Development, Addison-Wesley Professional, 3. Edition, 2010.
- [LKA] Wolfgang Mauerer: Professional Linux Kernel Architecture, John Wiley & Sons, 2008.
- [ULK] Daniel P. Bovet, Marco Cesati: Understanding the Linux Kernel, O'Reilly, 2006.
- [VMM] Mel Gorman: Understanding the Linux Virtual Memory Manager, 2007
- [LDD] Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman: Linux Device Drivers (Third Edition), O'Reilly, 2005. (Auch als Gesamt-PDF verfügbar.)
Daneben gibt es aber natürlich noch den Quellcode. Weitere Quellen werden noch themenspezifisch hinzugefügt.
Evaluationen
- WS23/24 • Seminar • Daniel Lohmann • Evaluation (PDF) • Bewertung: 1.3
Anmeldung und weitere Infos
Für diese Veranstaltung ist eine Online-Anmeldung über Stud.IP erforderlich. Bitte registrieren Sie sich (falls noch nicht geschehen) für Stud.IP und tragen Sie sich dort in die entsprechende Veranstaltung ein.