Linux-Systemprogrammierung
In diesem Seminar geht es um die Schnittstelle des
Linux-Kernels zum Userspace, dem Syscall-Interface.
Vorausgesetzt werden gute Kenntnisse in der Programmiersprache
C sowie sicherer Umgang in der Linux-Shell.
Die Kursdauer beträgt 4 Tage.
Im Verlauf des Kurses werden diverse kleinere Programme erstellt,
die die Funktionsweise der jeweiligen Mechanismen demonstrieren
bzw. anhand von Übungsvorlagen vervollständigt werden.
Großer Wert wird darauf gelegt, nicht nur die Funktionalitäten
zu vermitteln, sondern auch Hintergrundinformationen aus Sicht
des Kernels zu liefern. Dadurch wird ein tieferes Verständnis der
Systemprogrammierung erreicht.
Dem Teilnehmer wird ermöglicht, die Theorie direkt in die Praxis
im eigenen Projekt umzusetzen.
Agenda
Alles ist eine Datei
Zugriff auf Dateien
Warten auf Ereignisse (poll, select)
Memory-Mapping
Prozesse und Threads
Erzeugung von Prozessen
Laden von Programmen
Zombie-Prozesse
Multithreading
Linux-Scheduler
CPU-Affinitäten, CPU-Sets
Interprozesskommunikation
Signale
Message-Queues
Semaphore
Shared Memory
POSIX-Timer
Netzwerk-Sockets
Mutex
Barrier
Security
Control Groups (cgroups)
Capabilities
Debugging und Tracing
strace und ltrace
trace-marker, uprobes
GNU-Debugger gdb
Remote-Debugging mit gdbserver
Userlevel-Treiber
IO-Memory mit /dev/mem
GPIO-Zugriff über sysfs und ioctl
I2C- und SPI-Bus-Zugriff
Zugriff auf Industrial-IO-Sensoren