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