systems programming

This course is aimed at developers who want to create their own software in the C programming language using the Linux API and Posix functions. From accessing files and generating processes to inter process communication, the course covers the entire spectrum of system programming under Linux. The individual sections are practiced by creating your own programs using templates. The course has 4 subject areas:
  • Files and processes
  • Hardware interfaces
  • Inter process communication
  • Multithreading
Development, debugging and tracing tools are explained and practiced using specific examples.

Trainer und Dozenten

  • Andreas Klinger has been an electrical engineer since 1998 and works as a freelance trainer and developer.
  • As a specialist for Linux, he deals with the internal structure of the kernel, and above all with its use in Linux-based embedded systems.
  • Contributor to the Linux kernel and other open source projects
  • As an author of technical articles and a speaker at conferences, he teaches open source software technologies.

Voraussetzungen

The participant needs a solid basic knowledge of using the Linux shell to be able to follow the course. Participants without Linux experience can attend the Linux for Developers or Linux Basics course to prepare for this.

Inhalt

Files and processes
  • VFS - Virtual File System
  • Files, pipes, file descriptors
  • Blocking file access
  • Generation and termination of processes, zombies
  • Scheduling: RT-, Deadline-, Batch-Task
  • proc and sysfs
Hardware interfaces
  • GPIOs: sysfs and ioctl() interface
  • I2C and SPI
  • IIO (Industrial-IO) as sensor framework
Inter process communication
  • Message queue, semaphore
  • signals, core dumps
  • Shared memory
  • Posix timer
  • Network communication with sockets
Multithreading
  • Multithreading, Native Posix Threading Library (NPTL)
  • Mutex, PI-Mutex, RW-Lock, Barrier
Development tools
  • 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.