Systemprogrammierung

Wie nutze ich die Linux-API mit Posix-Funktionen

Dieser Kurs richtet sich an Entwickler, welche systemnah mit Hilfe der Linux-API und Posix-Funktionen selber Software in der Programmiersprache C erstellen wollen. Vom Zugriff auf Dateien, der Generierung von Prozessen bis hin zur Interprozess-Kommunikation spannt sich der Bogen über die ganze Bandbreite der Systemprogrammierung unter Linux.

Die einzelnen Abschnitte werden jeweils geübt, indem mithilfe von Vorlagen eigene Programme erstellt werden.

Der Kurs hat 4 Themenbereiche:

  • Dateien und Prozesse
  • Hardware-Interfaces
  • Interprozess-Kommunikation
  • Multithreading

Entwicklungs-, Debugging- und Tracing-Werkzeuge werden jeweils am konkreten Thema beispielhaft erläutert und geübt.

Trainer und Dozenten

Andreas Klinger ist seit 1998 Elektroingenieur und arbeitet als selbständiger Trainer und Entwickler.

Als Spezialist für Linux beschäftigt er sich mit dem internen Aufbau des Kernels, und vor allem mit dessen Einsatz in linuxbasierten Embedded-Systemen.

Contributor zum Linux-Kernel und anderen Open-Source-Projekten

Als Autor von Fachartikeln und als Referent auf Kongressen vermittelt er Open-Source Software-Technologien.

Voraussetzungen

Der Teilnehmer benötigt solides Grundwissen in der Benutzung der Linux-Shell, um dem Kurs folgen zu können. Teilnehmer ohne Linux-Erfahrungen können dazu die Schulung Linux für Entwickler oder Linux Grundlagen vorbereitend besuchen.

Inhalt

Dateien und Prozesse

  • VFS - Virtuelles Dateisystem
  • Dateien, Pipes, Filedeskriptoren
  • blockierender Dateizugriff
  • Generierung und Beendigung von Prozessen, Zombies
  • Scheduling: RT-, Deadline-, Batch-Task
  • proc- und sys-FS

Hardware-Interfaces

  • GPIO's: sysfs- und ioctl()-Interface
  • I2C und SPI
  • IIO (Industrial-IO) als Sensor-Framework

Interprozesskommunikation

  • Message-Queue, Semaphore,
  • Signale, Core-Dumps
  • Shared Memory
  • Posix-Timer
  • Netzwerkkommunikation mit Sockets

Multithreading

  • Multithreading, Native Posix Threading Library (NPTL)
  • Mutex, PI-Mutex, RW-Lock, Barrier

Entwicklungswerkzeuge

  • Debugging: gdb, gdbserver
  • Tracing: strace, ltrace
  • ftrace-Framework, trace-cmd, kernelshark, debug-FS
  • gcc, objdump, addr2line

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.