0

LFD401: Developing Applications for Linux

Ihre Termine

Datum Ort Preis
28.09.2026
-02.10.2026
Virtuelles Live Training 2.302,65 €*
Buchen

* Preise inkl. der gesetzlichen Mehrwertsteuer

Beschreibung

Diese 5-tägige LFD401 Schulung vermittelt praxisorientierte Fähigkeiten für die Entwicklung leistungsstarker Anwendungen unter Linux. Im Mittelpunkt stehen C-Programmierung, Systemprogrammierung, Linux-spezifische Schnittstellen, System Calls, Debugging, Prozessmanagement, Threads, IPC, Datei-I/O und Netzwerkprogrammierung mit Sockets. Du arbeitest mit typischen Werkzeugen wie GCC, make, git, gdb, valgrind und Profiling-Tools und setzt die Inhalte in einer offiziellen Linux-Foundation-Lab-Umgebung praktisch um.

Der Kurs richtet sich an erfahrene Entwicklerinnen und Entwickler, die robuste Anwendungen für produktive Linux-Umgebungen erstellen, analysieren und optimieren möchten. Wer vorher Linux-Grundlagen auffrischen möchte, findet im Linux Grundkurs eine passende Basis. Für den Betrieb, die Fehleranalyse und systemnahe Vertiefung bieten sich ergänzend das Seminar Linux Troubleshooting Intensiv oder der Linux Container Workshop an.

Die Schulung verbindet fundierte Theorie mit Hands-on Labs und bereitet darauf vor, Linux-Anwendungen sicherer zu entwickeln, Fehler systematisch zu untersuchen und Betriebssystemfunktionen gezielt einzusetzen.

Leistungsumfang:

  • inkl. offizieller Schulungsumgebung (LAB)
  • inkl. Verpflegung bei Präsenz
  • zzgl. offizieller Linux-Foundation-Unterlage (digital, engl.) à 875 € netto pro Person als verbindliche Zusatzkosten
  • zzgl. optionalem Prüfungsvoucher. Bei der Buchung ist ein zweiter Prüfungsversuch (Retake) kostenfrei inklusive, auf Wunsch separat erhältlich für 345,00 €

Inhalte

Einführung und Arbeitsweise in Linux-Umgebungen

  • Ziele, Aufbau und Arbeitsweise der LFD401 Schulung
  • Linux-Distributionen, Plattformen und vorbereitete Lab-Umgebung
  • Standards, Linux Standard Base und Besonderheiten von Open-Source-Projekten
  • Contribution-Prozesse, DCO, CLA, Maintainer-Workflows und Arbeiten nahe am Mainline-Code

Compiler, Bibliotheken und Build-Prozesse

  • GCC, weitere Compiler und wichtige Compiler-Optionen
  • Preprocessor, Entwicklungsumgebungen und typische Toolchains
  • Statische Bibliotheken, Shared Libraries und Linken gegen Bibliotheken
  • Dynamisches Linking und Dynamic Linking Loader
  • make, Makefiles, Regeln für größere Projekte und Built-in Rules

Versionskontrolle und Quellcode-Verwaltung

  • Grundlagen von Source Control
  • RCS, CVS, Subversion und git
  • Praktische Arbeitsabläufe für Versionskontrolle in Linux-Projekten

Debugging, Core Dumps und Performance-Analyse

  • Debugging mit gdb
  • Erzeugen und Analysieren von Core-Dump-Dateien
  • Zeitmessung, Profiling und Performance-Untersuchung
  • Fehleranalyse mit valgrind
  • Address Sanitizer für Speicherfehler und Laufzeitprüfungen

System Calls und Speicherverwaltung

  • Unterschiede zwischen System Calls und Bibliotheksfunktionen
  • Aufrufmechanismen, Rückgabewerte und Fehlernummern
  • Dynamische Speicherverwaltung und Allocation-Strategien
  • Tuning von malloc()
  • Sperren von Speicherseiten und relevante Grenzen der Speicherverwaltung

Dateien, Dateisysteme und Datei-I/O

  • Dateien, Verzeichnisse, Geräte und Virtual File System
  • ext2, ext3, ext4 und Journaling-Dateisysteme
  • UNIX File I/O mit open(), close(), read(), write() und seek
  • Positional I/O, Vector I/O und Standard-I/O-Bibliothek
  • Large File Support
  • stat-Funktionen, Directory-Funktionen und temporäre Dateien
  • inotify, Memory Mapping, flock() und fcntl()

Prozesse, Pipes und Signale

  • Prozessmodell, Prozessgrenzen, Prozessgruppen und proc-Dateisystem
  • Erzeugen von Prozessen mit system(), fork(), exec() und clone()
  • Exit-Verhalten, Konstruktoren, Destruktoren, wait und Daemon-Prozesse
  • Pipes, FIFOs, popen(), pclose(), pipe(), splice(), vmsplice() und tee()
  • Signals, Signal-Handler, Signal Sets, sigaction(), Alarme, Pausen und Schlafzustände
  • Reentrancy, Non-Local Returns, siginfo, sigqueue() und Real-Time Signals

Asynchronous I/O und POSIX Threads

  • Grundlagen von Asynchronous I/O
  • POSIX Asynchronous I/O API und Linux-Implementierung
  • Multithreading unter Linux und grundlegende Thread-Strukturen
  • Erzeugen und Beenden von Threads
  • Signals und Threads sowie Forking versus Threading
  • Deadlocks, Race Conditions, Mutex-Operationen, Semaphoren, Futexes und Condition Variables

Networking und Sockets

  • Netzwerkschichten und Socket-Grundlagen
  • Stream Sockets, Datagram Sockets, Raw Sockets und Byte Ordering
  • Socket-Adressstrukturen, IP-Konvertierung und Host-Informationen
  • Ports, Services und Protokollinformationen
  • Client-Sequenzen mit socket(), connect(), close() und shutdown()
  • Server-Sequenzen mit bind(), listen() und accept()
  • UNIX- und Internet-Clients sowie UNIX- und Internet-Server
  • Socket-I/O mit read(), write(), send(), recv(), sendto(), recvfrom(), sendmsg(), recvmsg(), sendfile() und socketpair()
  • Socket-Optionen mit fcntl(), ioctl(), getsockopt() und setsockopt()
  • Netlink Sockets und Netlink Messages
  • Multiplexing und Concurrent Servers mit select(), poll(), pselect(), ppoll() und epoll

Inter-Prozess-Kommunikation

  • Methoden der Inter-Prozess-Kommunikation
  • POSIX IPC und System V IPC
  • Shared Memory mit POSIX und System V
  • Semaphoren mit POSIX und System V
  • Message Queues mit POSIX und System V

Voraussetzungen

  • Sichere Kenntnisse in der C-Programmierung
  • Vertrautheit mit grundlegenden Linux-Dienstprogrammen und Texteditoren
  • Grundverständnis für Shell-Nutzung, Dateisysteme und Prozesse unter Linux
  • Empfohlen bei fehlender Shell-Routine: Linux / UNIX Shellprogrammierung Grundkurs

Zielgruppe

  • Erfahrene Softwareentwicklerinnen und Softwareentwickler mit C-Kenntnissen, die Anwendungen für Linux-Umgebungen entwickeln
  • Systemnahe Entwicklerinnen und Entwickler, die Linux-APIs, System Calls, IPC, Threads und Sockets gezielt einsetzen
  • DevOps- und Plattform-Engineering-Teams, die eigene Linux-Tools, Services oder Integrationen warten
  • Technische Projektteams, die Fehleranalyse, Performance-Untersuchung und robuste Laufzeitumgebungen für Linux-Anwendungen benötigen

Hinweise

Lernformate

Unsere Seminare bieten dir maximale Flexibilität: Du kannst zwischen Live-Online und Vor Ort in unseren modernen Schulungszentren im D-A-CH Raum wählen. Beide Formate garantieren dir die gleiche hohe Qualität und interaktive Lernerfahrung.

Schulungsarten

Wir bieten dir verschiedene Schulungsarten: Offene Seminare, Firmenseminare für Teams und Inhouse-Schulungen direkt bei dir vor Ort. So findest du genau das Format, das zu deinen Bedürfnissen passt.

Aktuelle Software

In unseren offenen Kursen arbeiten wir mit der aktuellsten Software-Version. So lernst du direkt mit den Tools und Features, die du auch in deinem Arbeitsalltag verwendest - praxisnah und zukunftsorientiert. Bei Inhouse- und Firmenschulungen bestimmt ihr die Version.

D