IT-Trainer Jobs und Stellenangebote: LFD401 Entwicklung von Anwendungen für Linux
Seminardauer: 5 Tage
Trainer gesucht
IT-Trainer Jobs und Stellenangebote: LFD401 Entwicklung von Anwendungen für Linux, Linux Foundation, Netzwerk- und System-Administrator.
Anmelden / Registrieren als Trainer
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