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 for Developers 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
- 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
- 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 Kurstagen gibt es bei uns ab 8 Uhr Frühstück.
Unsere Kurse beginnen um 9 Uhr und enden um 18 Uhr. Dieser Kurs endet am letzten Tag um 16:00 Uhr.
Neben den kleinen Pausen gibt es eine Stunde Mittagspause mit leckerem, frisch in unserer Küche zubereitetem Essen.
Nach der Schulung 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.