LFD401 Entwicklung von Anwendungen für Linux
Ziele
In dieser 5-tägigen Schulung "LFD401 Entwicklung von Anwendungen für Linux" erwerben Sie die Fähigkeiten zur Entwicklung von Anwendungen für Linux-Systeme. Dieser Kurs bietet praxisnahe Erfahrungen mit den notwendigen Werkzeugen und Methoden zur Entwicklung von Linux-Anwendungen. Sie werden die Besonderheiten und Techniken kennenlernen, die Linux zu einem herausragenden Betriebssystem machen. Erhalten Sie vertiefte Einblicke in die Tools und Methoden zur Programmierung von Anwendungen in C sowie zur Systemprogrammierung unter Linux. Lernen Sie Debugging-Techniken und Prozessmanagement kennen. Entwickeln Sie ein Verständnis für Linux-spezifische Schnittstellen und Systemaufrufe. Setzen Sie Ihr erworbenes Wissen erfolgreich auf verschiedenen führenden Linux-Distributionen ein. Diese Schulung vermittelt Ihnen das notwendige Wissen und die praktischen Fähigkeiten, um effektiv und erfolgreich Anwendungen für Linux zu entwickeln.
Zielgruppe
- Erfahrene Softwareentwickler
Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Kenntnisse in der C-Programmierung
- Vertrautheit mit 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.
Agenda
Compiler
- GCC
- Andere Kompiler
- Wichtige gcc-Optionen
- Präprozessor
- Integrierte Entwicklungsumgebungen (IDE)
Bibliotheken
- Statische Bibliotheken
- Gemeinsame Bibliotheken
- verlinken auf Bibliotheken
- Dynamisches verlinken mit Loadern
Make
- Verwendung von make und Make-files
- Erstellen großer Projekte
- Kompliziertere Regeln
- Eingebaute Regeln
Source Control
- Quellcode-Kontrolle
- RCS und CVS
- Subversion
- git
Debugging und Core Dumps
- gdb
- Was sind Core-Dump-Dateien?
- Erzeugen von Core-Dumps
- Core-Dumps untersuchen
Debugging Tools
- Electric Fence
- Zeitmessung
- Leistungsmessung und Profiling
- valgrind
System Calls
- System Calls vs. Datenbankfunktionen
- Aufbau der Systemaufrufe
- Rückgabewerte und Fehlermeldungen
Speicherverwaltung und Allocation
- Speicher-Management
- Dynamische Zuordnung
- Abstimmung von malloc()
- Sperrung von Seiten
Dateien und Dateisysteme in Linux
- Dateien, Verzeichnisse und Geräte
- Das virtuelle Dateisystem
- Das ext2/ext3-Dateisystem
- Journaling-Dateisysteme
- Das ext4/-Dateisystem
File Input/Output
- UNIX-Datei-I/O
- Öffnen und Schließen
- Lesen, Schreiben und Suchen
- Positional- und Vektor-I/O
- Standard-I/O-Bibliotheken
- Large File Support (LFS)
Fortgeschrittene Dateioperationen
- Statistik-Funktionen
- Verzeichnis-Funktionen
- inotify
- Speicher-Zuordnung
- flock() und fcntl()
- Erstellung temporärer Dateien
- Andere Systemaufrufe
Prozesse - I
- Was ist ein Prozess?
- Prozess Grenzen
- Prozess Gruppen
- Das proc-Dateisystem
- Kommunikationsmethoden zwischen Prozessen
Prozesse - II
- Verwendung von system() zur Erzeugung eines Prozesses
- Prozess mit fork() erzeugen
- Verwendung von exec() zur Erstellung eines Prozesses
- Verwendung von clone()
- Die Beendung
- Konstrukteure und Destrukteure
- Wartezustand
- Daemon-Prozesse
Pipes und Fifos
- Pipes und Inter-Prozess-Kommunikation
- popen() und pclose()
- pipe()
- Name Pipes (FIFOs)
- splice(), vmsplice() und tee()
Asynchroner Input/Output
- Was ist asynchrone I/O?
- Die POSIX-Asynchron-I/O-API
- Linux-Implementierung
Signale - I
- Was sind Signale?
- Verfügbare Signale
- Senden von Signalen
- Warnungen, Pausierung und Ruhezustand
- Einrichtung von Signal-Handlern
- Signal-Sets
- sigaction()
Signale - II
- Wiederkehr und Signalhandler
- Sprünge und nicht-lokale Rückkehr
- siginfo und sigqueue()
- Real-Time Signale
POSIX Threads - I
- Multi-threading auf Linux
- Grundlagen der Programmstruktur
- Erstellung und Zerstörung von Threads
- Signale und Threads
- Forking vs. Threading
POSIX Threads - II
- Deadlocks und Wettkampfbedingungen
- Mutex-Vorgänge
- Halbphasen (Semaphoren)
- Futexe
- Bedingungsabhängige Vorgänge
Netzwerke und Sockets
- Netzwerk-Ebenen
- Was sind Sockets?
- Stream-Sockets
- Datagramm-Sockets
- Raw-Sockets
- Byte-Ordnung
Sockets - Adressen und Hosts
- Socket-Adress-Strukturen
- Konvertierung von IP-Adressen
- Host-Informationen
Sockets - Ports und Protokolle
- Informationen zum Dienst-Port
- Protokoll-Informationen
Sockets - Clients
- Grundlagen der Client-Reihenfolge
- socket()
- connect()
- close() and shutdown()
- UNIX-Client
- Internet-Client
Sockets - Server
- Grundlagen der Server-Reihenfolge
- bind()
- listen()
- accept()
- UNIX-Server
- Internet Server
Sockets - Input/Output Operationen
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
Sockets - Optionen
- Socket Optionen abrufen und festlegen
- fcntl()
- ioctl()
- getsockopt() und setsockopt()
Netlink Sockets
- Was sind netlink Sockets?
- Netlink Socket öffnen
- netlink-Nachrichten
Sockets - Multiplexing und gleichzeitige Server
- Multiplexierte und asynchrone Socket-I/O
- select()
- poll()
- pselect() and ppoll()
- epoll
- Signal-gesteuerte und asynchrone I/O
- Parallele Server
Inter Process Communication
- Methoden der IPC
- POSIX-IPC
- System V IPC
Shared Memory
- Was ist Shared Memory?
- POSIX Shared Memory
- System V Shared Memory
Semaphore
- Was ist eine Semaphore?
- POSIX-Semaphoren
- System-V-Semaphoren
Message Queues
- Was sind Message Queues?
- POSIX Message Queues
- System V Message Queues
Open Badge - Ihr digitaler Kompetenznachweis
Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erlangen Sie nicht nur Fachkenntnisse und Fähigkeiten, sondern bekommen zusätzlich zu Ihrem Teilnahmezertifikat ein Open Badge als digitalen Nachweis Ihrer Kompetenz.
Sie können diesen in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com Konto abrufen. Ihre verdienten Badges lassen sich problemlos in sozialen Netzwerken integrieren und weitergeben.
Kurz vor Durchführung
Termin | Standort | Aktion |
---|---|---|
27.01. - 31.01.2025 | Hamburg | |
03.02. - 07.02.2025 | München | |
10.03. - 14.03.2025 | Köln | |
07.04. - 11.04.2025 | Nürnberg |