Seminare
Seminare

LFD401: Developing Applications for Linux

Webinar - PROKODA GmbH

LFD401: Developing Applications for Linux
Termin Ort Preis*
28.09.2026- 02.10.2026 online 2.374,05 €
*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

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
Teilnahmevoraussetzungen:
  • 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
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha