LFD401 Entwicklung von Anwendungen für Linux
Ziele der Schulung
In dieser 4-tägigen Schulung „LFD401 Entwicklung von Anwendungen für Linux“ lernen Sie die Entwicklung von Linux-Anwendungen und Systemprogrammen mit C.
Dabei werden die besonderen Eigenschaften der Linux-Umgebung vermittelt und die notwendigen Kenntnisse aufgebaut, um leistungsfähige Anwendungen zu entwickeln und bestehende Programme gezielt zu erweitern oder zu optimieren.
In diesem Kurs werden die Werkzeuge und Methoden zur Entwicklung von C-Programmen und zur Systemprogrammierung unter Linux behandelt. Zusätzlich werden Debugging-Techniken, Prozessmanagement, Linux-spezifische APIs und System Calls sowie weitere Themen vermittelt.
Zielgruppe Seminar
- Erfahrene Softwareentwickler
Voraussetzungen
Dieser Kurs richtet sich an erfahrene Entwickler:
- fundierte Kenntnisse in der Programmiersprache C
- gute Kenntnisse in grundlegenden Linux-Dienstprogrammen und Texteditoren
Lernmethodik
Die Schulung bietet Ihnen eine ausgewogene Mischung aus Theorie und Praxis in einer erstklassigen Lernumgebung. Profitieren Sie vom direkten Austausch mit unseren projekterfahrenen Trainern und anderen Teilnehmern, um Ihren Lernerfolg zu maximieren.
Seminarinhalt
Einführung
- Objectives
- Who You Are
- The Linux Foundation
- Copyright and No Confidential Information
- Linux Foundation Training
- Certification Programs and Digital Badging
- Linux-Distributionen
- Platforms
- System vorbereiten
- Using and Downloading a Virtual Machine
- Veränderungen in Linux- und Open-Source-Projekten
Grundlagen
- Procedures
- Standards und the LSB
How to Work in OSS Projects
- Überblick über korrektes Contributing
- Code-Quellen kennen: DCO und CLA
- Nähe zum Mainline für Security und Quality halten
- Project DNA studieren und verstehen
- Eigene Motivation und Ziele definieren
- Maintainers sowie deren Workflows und Methoden identifizieren
- Frühzeitig Input einholen und Open Development nutzen
- Schrittweise beitragen, keine großen Code-Dumps
- Ego zurückstellen: nicht empfindlich reagieren
- Geduld, langfristige Beziehungen aufbauen, hilfreich sein
Compilers
- GCC
- Other Compilers
- Wichtige gcc Options
- Preprocessor
- Integrated Development Environments (IDE)
- Labs
Libraries
- Static Libraries
- Shared Libraries
- Linking To Libraries
- Dynamic Linking
- Loader
- Labs
Make
- Nutzung von make und Makefiles
- Build großer Projekte
- Komplexere Regeln
- Built-in rules
- Labs
Source Control
- Source Control
- RCS und CVS
- Subversion
- git
- Labs
Debugging und Core Dumps
- gdb
- Was sind Core Dump Files?
- Erzeugen von Core Dumps
- Analyse von Core Dumps
- Labs
Debugging Tools
- Zeitmessung
- Profiling und Performance
- valgrind
- Address Sanitizer
- Labs
System Calls
- System Calls vs. Library Functions
- Wie System Calls ausgeführt werden
- Return Values und Error Numbers
- Labs
Memory Management und Allocation
- Memory Management
- Dynamical Allocation
- Tuning malloc()
- Locking Pages
- Labs
Files und Filesystems in Linux
- Files, Directories und Devices
- The Virtual File System
- The ext2/ext3 Filesystem
- Journaling Filesystems
- The ext4 Filesystem
- Labs
File I/O
- UNIX File I/O
- Öffnen und Schließen
- Lesen, Schreiben und Seeking
- Positional und Vector I/O
- Standard I/O Library
- Large File Support (LFS)
- Labs
Advanced File Operations
- Stat Functions
- Directory Functions
- inotify
- Memory Mapping
- flock() und fcntl()
- Temporäre Dateien erstellen
- Weitere System Calls
- Labs
Processes - I
- Was ist ein Process?
- Process Limits
- Process Groups
- The proc Filesystem
- Inter-Process Communication Methods
- Labs
Processes - II
- system() zur Prozess-Erzeugung
- fork() zur Prozess-Erzeugung
- exec() zur Prozess-Erzeugung
- clone()
- Exiting
- Constructors und Destructors
- Waiting
- Daemon Processes
- Labs
Pipes and FIFOs
- Pipes und Inter-Process Communication
- popen() und pclose()
- pipe()
- Named Pipes (FIFOs)
- splice(), vmsplice() und tee()
- Labs
Asynchronous I/O
- Was ist Asynchronous I/O?
- The POSIX Asynchronous I/O API
- Linux Implementation
- Labs
Signals - I
- Was sind Signals?
- Available Signals
- Dispatching Signals
- Alarms, Pausing und Sleeping
- Signal Handler einrichten
- Signal Sets
- sigaction()
- Labs
Signals - II
- Reentrancy und Signal Handlers
- Jumping und Non-Local Returns
- siginfo und sigqueue()
- Real Time Signals
- Labs
POSIX Threads - I
- Multi-threading unter Linux
- Grundstruktur eines Programms
- Threads erstellen und zerstören
- Signals und Threads
- Forking vs. Threading
- Labs
POSIX Threads - II
- Deadlocks und Race Conditions
- Mutex Operations
- Semaphores
- Futexes
- Conditional Operations
- Labs
Networking and Sockets
- Networking Layers
- Was sind Sockets?
- Stream Sockets
- Datagram Sockets
- Raw Sockets
- Byte Ordering
- Labs
Sockets - Addresses and Hosts
- Socket Address Structures
- IP-Adressen konvertieren
- Host Information
- Labs
Sockets - Ports and Protocols
- Service Port Information
- Protocol Information
- Labs
Sockets - Clients
- Basic Client Sequence
- socket()
- connect()
- close() und shutdown()
- UNIX Client
- Internet Client
- Labs
Sockets - Servers
- Basic Server Sequence
- bind()
- listen()
- accept()
- UNIX Server
- Internet Server
- Labs
Sockets - Input/Output Operations
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
Sockets - Options
- Socket Options lesen und setzen
- fcntl()
- ioctl()
- getsockopt() und setsockopt()
- Labs
Netlink Sockets
- Was sind netlink Sockets?
- Öffnen eines netlink Socket
- netlink Messages
- Labs
Sockets - Multiplexing and Concurrent Servers
- Multiplexed und Asynchronous Socket I/O
- select()
- poll()
- pselect() und ppoll()
- epoll
- Signal Driven und Asynchronous I/O
- Concurrent Servers
- Labs
Inter Process Communication
- IPC-Methoden
- POSIX IPC
- System V IPC
- Labs
Shared Memory
- Was ist Shared Memory?
- POSIX Shared Memory
- System V Shared Memory
- Labs
Semaphores
- Was ist ein Semaphore?
- POSIX Semaphores
- System V Semaphores
- Labs
Message Queues
- Was sind Message Queues?
- POSIX Message Queues
- System V Message Queues
- Labs
Abschluss und Evaluationsumfrage
- Evaluation Survey
Hinweise
Prüfung und Zertifizierung
Für diesen Kurs gibt es keine abschließende Prüfung.
Open Badge für dieses Seminar - Ihr digitaler Kompetenznachweis

Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erhalten Sie zusätzlich zu Ihrem Teilnehmerzertifikat ein digitales Open Badge (Zertifikat) – Ihren modernen Nachweis für erworbene Kompetenzen.
Ihr Open Badge ist jederzeit in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com-Konto verfügbar. Mit wenigen Klicks können Sie diesen digitalen Nachweis in sozialen Netzwerken teilen, um Ihre Expertise sichtbar zu machen und Ihr berufliches Profil gezielt zu stärken.
Übersicht: Linux Foundation Schulungen Portfolio
Seminare kurz vor der Durchführung
| 18.08. - 21.08.2026 | Hamburg | ||
| 07.09. - 10.09.2026 | Nürnberg | ||
| 06.10. - 09.10.2026 | München | ||
| 09.11. - 12.11.2026 | Köln |



