Praktikum Systemsoftwaretechnik

NUMMER: 212405
KÜRZEL: STEP
MODULBEAUFTRAGTE:R: Prof. Dr.-Ing. Timo Hoenig
DOZENT:IN: Timo Hönig
FAKULTÄT: Fakultät für Informatik
SPRACHE: Deutsch
SWS: 2
CREDITS: 3
ANGEBOTEN IM: jedes Wintersemester

LINK ZUM VORLESUNGSVERZEICHNIS

Hier entlang.

VERANSTALTUNGSART

Praktikum

LERNFORM

Das Praktikum enthält seminaristischen Unterricht, um grundlegende Informationen zum Umgang mit dem Linux-Kernel und benötigte Werkzeuge zu vermitteln. Ansonsten kommen hauptsächlich praktische Übungen am Rechner zur Vermittlung der Inhalte zum Einsatz.

Im Rahmen der Lötübung werden die Fähigkeiten zum Umgang mit Lötausrüstung vermittelt und Hilfestellung beim Zusammenbau des Sensors gegeben. Vorherige Löterfahrung ist nicht erforderlich.

LERNZIELE

Die Studierenden erlernen den Umgang mit und die Entwicklung von systemnaher Software, der Open-Source Gemeinde und dem Linux Kernel. Konkret erreichen die Studierenden bei erfolgreichen Abschluss die folgenden Lernziele:

- Fachkompetenz: vertieftes Wissen, Analyse- und Evaluationsfähigkeiten im Umgang mit komplexen, systemnahen Softwaresystemen und der Entwicklung neuer Komponenten für diese

- Methodenkompetenz: sichere Anwendung gängiger Werkzeuge im Open-Source-Bereich und der systemnahen Softwareentwicklung

- Selbstkompetenz: Umgang mit kritischen Feedback und Herausforderungen in der Fehlersuche in komplexen systemnahen Hardware- und Softwarekomponenten

- Sozialkompetenz: Selbstorganisierte gemeinsame Bearbeitung der Aufgaben in Gruppen.

INHALT

In der Lehrveranstaltung werden grundlegende Kentnisse über den Linux-Kernel und der Softwareentwicklung innerhalb eines Betriebssystemkerns vermittelt. Da die Softwareentwicklung in Betriebssystemen speziellen Anfordungen und Umgebungsbedingungen genügen muss (erhöhtes Fehlerpotenzial, wenig Laufzeitunterstützung, schwierigeres Debuggen, Korrektheit, Laufzeiteffizienz), werden Werkzeuge und Hilfsmittel im Betriebssystemkontext vorgestellt und praktisch angewandt.

Mittelpunkt des Praktikums stellt der Bau eines Temperatursensors und die Entwicklung eines Kernelmoduls zu dessen Ansteuerung dar. Dafür werden den Studierenden die Bauteile (Sensor, Platine, Microcontroller, ...) zur Verfügung gestellt, welche die Studierenden im Rahmen einer Lötübung zu einem funktionsfähigen Temperatursensor zusammenbauen. Für diesen Sensor wird anschließend von den Studierenden ein Kernelmodul entwickelt, dass die Ansteuerung des Sensors übernehmen soll (sog. Gerätetreiber). Die Kommunikation erfolgt hierbei per USB. Der Treiber soll die Ansteuerungsdetails hierbei verdecken und den Nutzern des Systems eine einfach zu bedienende Schnittstelle für die Funktionalität des Sensors anbieten (Auslesen der Temperaturwerte).

Hierbei werden typische Probleme und Lösungsstrategien in der systemnahen Programmierung sowohl für die Entwicklung im Betriebssystemkern, als auch an der Schnittstelle zwischen Software und Hardware, am praktischen Beispiel vermittelt und erfahrbar gemacht.

VORAUSSETZUNGEN CREDITS

Aktive Teilnahme am Projekt, fristgerechte Abgabe des Abschlussbereichts und Bewertung
des Abschlussberichts mit min. ausreichend. Hinweis: Jeder Abschlussbericht muss im Umfang
von einer DinA4 Seite eine Reflexion über das methodische Vorgehen enthalten.

EMPFOHLENE VORKENNTNISSE

Inhalte der Module Betriebssysteme werden empfohlen. Vorausgesetzt wird ein generelles Interesse am Umgang mit dem Linux Kernel und systemnaher Programmierung in der Programmiersprache C oder Rust (experimentell).

LITERATUR

A. S. Tanenbaum: „Modern Operating Systems“, Pearson Verlag
2. W. Stallings: „Internals and Design Principles“, Pearson Verlag