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, welche
die Funktionsweise der jeweiligen Mechanismen demonstrieren
erstellt bzw. unter Verwendung von Übungsvorlagen
vervollständigt.
Großer Wert wird darauf gelegt, nicht nur die Funktionalitäten
zu besprechen, sondern auch Hintergrundinformationen aus Sicht
des Kernel zu liefern. Dadurch wird in tieferes Verständnis der
Systemprogrammierung erlangt.
Dem Teilnehmer wird dadurch ermöglicht die Theorie 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
Generierung von Prozessen
Laden von Programmen
Zombies
Multithreading
Linux-Scheduler
CPU-Affinitäten, CPU-Sets
Interprozeß-Kommunikation
Signale
Message-Queue
Semaphore
Shared-Memory
Posix-Timer
Netzwerk-Sockets
Mutex
Barrier
Security
Control-Groups
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 im sysfs und mit ioctl
I2C- und SPI-Bus-Zugriff
Zugriff auf Industrial-IO-Sensoren