Projekt: System- und Rechnerarchitektur


Semester:
Sommersemester

Leistungspunkte
6

Dozent:
Daniel Lohmann

Betreuer:
Florian Rommel, Gerion Entrup, Tobias Landsberg

Zeit/Raum:
  • Übung: Montag, 15:00 - 16:30 (erster Termin am 08.04), SRA Seminarraum (Raum 135, Appelstr. 4, 1.OG)

Stud.IP-Veranstaltung:

Am Montag den 08.04. um 15 Uhr findet die erste Veranstaltung statt. Weitere Präsensveranstaltungen finden in unregelmäßigen Abständen statt. Es wird außerdem zusätzliche Laborzeit am Donnerstagnachmittag (ab 14 Uhr) angeboten.

Inhalt

In diesem Labor werden Fertigkeiten vermittelt, um sich direkt an der Entwicklung von Open-Source-Projekten – im Speziellen des Linux-Kernels – zu beteiligen. Zusätzlich wird eine Einführung in die interessante Welt der system- und hardwarenahe Softwareentwicklung geboten.

Der Einsatz der verschiedenen Werkzeuge wird während der Bearbeitung der praxisnahen Aufgaben erlernt: So muss auch mal der Lötkolben geschwungen werden, um ein Hardwaregerät zu erstellen, das dann anschließend durch einen eigenen Treiber in Linux einzubinden ist. Neben dem Erlernen von Arbeitsmethoden in Open-Source-Projekten (im Rahmen des Labors sollen z.B. auch echte Beiträge zum Linux-Kernel entstehen) wird außerdem in einem kleinen Wettkampf (CTF) das Verständnis von Assembler- und Low-Level-Programmierung trainiert.

Folgende Themen werden behandelt:

Teilnehmer das Labores werden für Linux Verbesserungen entwickeln können, Hardware besser verstehen und Treiber dafür schreiben können. Sie werden überdies mit Assembler gearbeitet haben und ihn verstehen können. Es werden in regelmäßigen Abständen Aufgaben gestellt, die in Gruppen bearbeitet werden.

Aufgaben

Semesterplan

Woche Mo 15:00 Do 14:00
08.04. Ü1Arbeitsumgbebung & Kernel-Debugging
15.04. Ü2Git / Kernel Entwicklung A1Abgabe 1
22.04.
29.04. Ü3Git / Kernel Entwicklung T2Teilabgabe 2
06.05.
13.05. Ü4Treiberentwicklung Löttermin
20.05. Löttermin A2Abgabe 2 T3Teilabgabe 3
27.05. Ü+Meltdown Himmelfahrt
03.06. Ü5Reverse Engineering / Binärcodeanalyse A4Abgabe 4
10.06. Pfingsten Pfingsten
17.06.
24.06.
01.07.
08.07.
15.07. Ü6Vorstellung der LKML-Patches A3Abgabe 3 A5Abgabe 5

In der Tafelübung (ÜXÜbung X) wird die jeweils nächste Aufgabe vorgestellt und die nötigen Inhalte vermittelt. Jeden Donnerstag gibt es eine betreute Rechnerzeit (). In den Rechnerübungen werden keine neuen Inhalte vermittelt – sie müssen daher nicht unbedingt besucht werden. Bei Fragen könnt ihr euch auch außerhalb der Rechnerzeiten jederzeit an einen der Betreuer wenden. Die Abgabetermine (AXAbgabe X) sind entweder zu den Rechnerübungsterminen oder in der Tafelübung. Zu einigen Aufgaben gibt es Teilabgaben (TXTeilabgabe X). Zu diesen Terminen muss jeweils ein bestimmter Teil der Aufgabe erfüllt sein.

Vorkenntnisse

Evaluation

Literatur

Linux device drivers, 3rd Edition
Jonathan Corbet, Alessandro Rubini, Greg Kroah-HartmanO'Reilly2005978-0-596-00590-0.
PDF [BibTex]
Git. Verteilte Versionsverwaltung für Code und Dokumente
Valentin Haenel, Julius PlenzOpen Source Press2011978-3941841420.
[BibTex]
Hacking: die Kunst des Exploits
J. Ericksondpunkt-Verlag20089783898645362.
[BibTex]

Artikel auf LWN.net

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.

Stud.IP Veranstaltungen
Projekt System- und Rechnerarchitektur