Header Background
 
 
 

LFD401 Entwicklung von Anwendungen für Linux

Seminardauer: 4 Tage

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

IT-Schulungen Badge: LFD401 Entwicklung von Anwendungen für Linux

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

Mehr zu den Vorteilen von Badges

Seminare kurz vor der Durchführung

       
18.08. - 21.08.2026 Hamburg Anfragen
07.09. - 10.09.2026 Nürnberg Anfragen
06.10. - 09.10.2026 München Anfragen
09.11. - 12.11.2026 Köln Anfragen
 
Anmeldungen vorhanden
1.) Wählen Sie den Seminartyp:


2.) Wählen Sie Ort und Datum:
1.995,00 € Preis pro Personspacing line2.374,05 € inkl. 19% MwSt
zzgl. Offizielle Schulungsumgebung (LAB)
zzgl. Offizielle Linux Foundation-Unterlage (digital, engl.)
zzgl. Verpflegung 30,00 €/Tag bei Präsenz

Anfragen Buchen Merkzettel
 
Diese Seite weiterempfehlen:
0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel