Fachprojekt „Systemsoftwaretechnik”

00a - Organisation

Alexander Krause

07.04.2025
🚀 by Decker

Code of Conduct

  • Wir in der Fakultät für Informatik fördern ein motivierendes und chancengleiches Umfeld, in welchem wir gemeinsam lernen, lehren und forschen.
  • Diskriminierung und sexualisierte Gewalt werden nicht toleriert, intensiv verfolgt und im Rahmen der rechtlichen Möglichkeiten sanktioniert.
  • Zu inakzeptablem Verhalten zählt u.a. belästigendes, beleidigendes, diskriminierendes, einschüchterndes, abwertendes und erniedrigendes Verhalten und Sprache.

Ansprechpartner*innen

Wenn Sie Diskriminierung oder sexualisierte Gewalt erleben oder beobachten oder Fragen zum Thema haben, können Sie sich beispielsweise an folgende Stellen wenden:

Das Team und die Ziele

Wer sind wir  und was haben wir vor?

  • Das „Team”
fig/lochmann.png
Alexander Krause
  • Ihr könnt …
    • Euch eigenständig in große Softwareprojekte einarbeiten,
    • den Linux-Kern konfigurieren, bauen und auch erweitern,
    • ein Fehlermuster analysieren und

Bestandteile des Fachprojekts

  • Tafelübung
    • Einführung in die Themen
    • Hilfestellung zur Lösung
    • jeweils einmal zu jeder Aufgabe
  • Rechnerübung
    • = betreutes Programmieren
    • Bearbeitung der Aufgaben
    • bei Bedarf gibt es Hilfestellung
    • Abgabe der Aufgaben
    • Diskussion eurer Aufgabenlösungen

Wichtig: Es gibt keine Anwesenheitspflicht! 😀

Zeitplan für die Übungsaufgaben

gen/zeitplan-aufgaben-crop.svg

Zeitplan für die Woche

gen/zeitplan-woche-crop.svg

Passt Euch der Termin für die zweite Rechnerübung?

Anonsten ist das Labor frei. 😀

Aufgaben

  • Aufgabe
    • Fünf Aufgabenblätter
    • Bearbeitung in Gruppen (2er oder 3er Gruppen)
    • Zwischen zwei und vier Wochen Bearbeitungszeit
  • Abgabe
    1. Hochladen (und taggen) im Abgaberepository
    2. Ihr sprecht mich selbstständig an
    3. Vorstellen der Lösung in der Rechnerübung bis zum Stichtag

Aufgabenblatt 0

  • Erste Schritte mit und im Linux-Kern
    1. Arbeitsumgebung einrichten, eigenes Repository einrichten
    2. Linux-Kernel herunterladen, konfigurieren und den Kernel übersetzen
    3. Einrichten einer Debian-Installation in einer VM mit dem selbst kompilierten Kernel
  • Bearbeitungszeit: ca. 2 Wochen

Aufgabenblatt 1

  • Debugging im Linux-Kern
    • Einführung in integrierte Debugging-Werkzeuge
    • Ausprobieren der einzelnen Werkzeuge anhand separater Beispiele
    • Programmcode des Kerns selbst korrigieren
  • Bearbeitungszeit: ca. 3 Wochen

Aufgabenblatt 2

  • Debugging im Linux-Kern – von außen
    • Eine Übersicht über die Werkzeuglandschaft
    • Detailierrtere Vorstellung ausgewählter Werkzeuge
    • Eigene Untersuchung des Linux-Kern
  • Bearbeitungszeit: ca. 3 Wochen

Aufgabenblatt 3

  • Der eigene Linux-Treiber
    • Einführung in die Struktur von Linux-Treibern
    • Implementierung eines (ohne Hardware)
  • Bearbeitungszeit: ca. 3 Wochen
fig/tux-construction-worker.svg

Aufgabenblatt 4

  • Capture the flag
    • Startpunkt ist der Quellcode für fehlerhaften Linux-Kern
    • Ziel ist, alle Fehler zu finden und zu beheben
  • Bearbeitungszeit: ca. 4 Wochen

Arbeitsplätze

  • OH16, E07
  • 15 Laborarbeitsplätze mit Desktoprechnern
  • Nutzeraccounts + Home via NFS an allen Rechnern
  • Schneller, lokaler Speicher unter /fs/scratch/XXX
  • Remote Zugriff aus dem Internet auf Eure Daten: mars.cs.tu-dortmund.de

Hat jede(r) eine E-Mail mit seinem/ihrem Account erhalten?

Arbeitsumgebung

Diese Werkzeuge werden Euch u.a. begegnen:

  • Git als dezentrale Versionsverwaltung für geschriebenen Code
  • Editor/IDE eurer Wahl
  • Programmiersprache C
  • Make
  • Dokumentation
  • GDB/kGDB

Bitte frischt ggf. nochmal Eure Kenntnisse auf!
(siehe roter Text)

Materialien und Kommunikation

Oder einfach an meinem Büro (OH16, E02) klopfen. 😀

Chief Recreation Officer

fig/paul.jpg
Paul
Logo Sys
Fachprojekt „Systemsoftwaretechnik”