Schulungsübersicht

Einführung

  •  Ziele
  •  Wer Sie sind
  •  Die Linux Foundation
  •  Linux Foundation Schulungen
  •  Zertifizierungsprogramme und Digitale Badges
  •  Linux-Distributionen
  •  Plattformen
  •  System vorbereiten
  •  Verwendung und Herunterladen einer virtuellen Maschine
  •  Änderungen in Linux

Vorbereitungen

  •  Prozeduren
  •  Normen und LSB

Arbeiten an OSS-Projekten **

  •  Übersicht zur korrekten Beitragserbringung
  •  Bleiben Sie nah am Hauptzweig für Sicherheit und Qualität
  •  Studieren und Verstehen des Projektdesigns
  •  Erkennen der Problemfelder, die Sie lösen wollen
  •  Identifizieren von Pflegern und deren Arbeitsabläufen und Methoden
  •  Frühe Eingaben erhalten und offene Arbeit betreiben
  •  Kleinere Beitragstypen einbringen, keine großen Code-Dumps
  •  Ego an der Tür lassen: Seien Sie nicht empfindlich
  •  Sei geduldig, baue langfristige Beziehungen auf und sei hilfsbereit

Kompilatoren

  •  GCC
  •  Andere Kompilatoren
  •  Wichtige gcc-Optionen
  •  Vorverarbeitung
  •  Integrierte Entwicklungsumgebungen (IDE)
  •  Praktika

Bibliotheken

  •  Statische Bibliotheken
  •  Dynamische Bibliotheken
  •  Verlinkung mit Bibliotheken
  •  Dynamischer Link-Loader
  •  Praktika

Make

  •  Verwendung von make und Makefiles
  •  Großprojekte erstellen
  •  Kompliziertere Regeln
  •  Integrierte Regeln
  •  Praktika

Quellcodeverwaltung

  •  Quellcodeverwaltung
  •  RCS und CVS
  •  Subversion
  •  git
  •  Praktika

Fehlerbehebung und Core Dumps

  •  gdb
  •  Was sind Core Dump Dateien?
  •  Erstellen von Core Dumps
  •  Überprüfung von Core Dumps
  •  Praktika

Fehlerbehebungswerkzeuge

  •  Erfassung der Zeit
  •  Profiling und Leistung
  •  valgrind
  •  Praktika

Syscalls

  •  Syscalls vs. Bibliotheksfunktionen
  •  Wie Syscalls ausgeführt werden
  •  Rückgabewerte und Fehlernummern
  •  Praktika

Speicherverwaltung und -allokation

  •  Speicherverwaltung
  •  Dynamische Allokation
  •  Anpassung von malloc()
  •  Seiten sperren
  •  Praktika

Dateien und Dateisysteme in Linux **

  •  Dateien, Verzeichnisse und Geräte
  •  Das Virtuelle Dateisystem
  •  Das ext2/ext3-Dateisystem
  •  Journaling-Dateisysteme
  •  Das ext4-/Dateisystem
  •  Praktika

Datei-E/A

  •  UNIX-Datei-E/A
  •  Öffnen und Schließen
  •  Lesen, Schreiben und Suchen
  •  Positionale und Vektor-E/A
  •  Standard-I/O-Bibliothek
  •  Großdateienunterstützung (LFS)
  •  Praktika

Fortschrittliche Dateiverwaltung

  •  Stat-Funktionen
  •  Verzeichnisfunktionen
  •  inotify
  •  Speicheraufnahmen
  •  flock() und fcntl()
  •  Erstellen von temporären Dateien
  •  Andere Syscalls
  •  Praktika

Prozesse I

  •  Was ist ein Prozess?
  •  Prozessgrenzen
  •  Prozessgruppen
  •  Das proc-Dateisystem
  •  Methoden der Kommunikation zwischen Prozessen (IPC)
  •  Praktika

Prozesse II

  •  Mit system() einen Prozess erstellen
  •  Mit fork() einen Prozess erstellen
  •  Mit exec() einen Prozess erstellen
  •  Verwendung von clone()
  •  Beenden
  •  Konstruktoren und Destruktoren
  •  Warten
  •  Daemon-Prozesse
  •  Praktika

Pipelines und FIFOs

  •  Pipelines und Kommunikation zwischen Prozessen
  •  popen() und pclose()
  •  pipe()
  •  Benannte Pipes (FIFOs)
  •  splice(), vmsplice() und tee()
  •  Praktika

Nicht-Blockierende E/A**

  •  Was ist nicht-blockierende E/A?
  •  Die POSIX-Nicht-Blockierende I/O-API
  •  Linux-Implementierung
  •  Praktika

Signale I

  •  Was sind Signale?
  •  Verfügbare Signale
  •  Signalverteilung
  •  Alarms, Warten und Schlafen
  •  Einrichten eines Signalhandlers
  •  Signalmengen
  •  sigaction()
  •  Praktika

Signale II

  •  Wiedereintrittsfähigkeit und Signalhandler
  •  Sprünge und nichtlokale Rückkehrwerte
  •  siginfo und sigqueue()
  •  Echtzeit-Signale
  •  Praktika

POSIX Threads I

  •  Multithreading unter Linux
  •  Grundlegende Programmstruktur
  •  Erstellen und Zerstören von Threads
  •  Signale und Threads
  •  Forking vs. Threading
  •  Praktika

POSIX Threads II

  •  Todessituationen und Race Conditions
  •  Mutex-Operationen
  •  Seminare
  •  Futexes
  •  Bedingte Operationen
  •  Praktika

Netzwerk und Sockets

  •  Netzwerkschichten
  •  Was sind Sockets?
  •  Stream-Sockets
  •  Datagramm-Sockets
  •  Roh-Sockets
  •  Byte-Reihenfolge
  •  Praktika

Sockets-Adressen und Hosts

  •  Socket-Adressstrukturen
  •  Konvertierung von IP-Adressen
  •  Hostinformationen
  •  Praktika

Sockets - Ports und Protokolle

  •  Service-Portinformationen
  •  Protokollinformationen
  •  Praktika

Sockets - Clients

  •  Grundlegende Clientsequenz
  •  socket()
  •  connect()
  •  close() und shutdown()
  •  UNIX-Client
  •  Internet-Client
  •  Praktika

Sockets - Servers

  •  Grundlegende Serversequenz
  •  bind()
  •  listen()
  •  accept()
  •  UNIX-Server
  •  Internet-Server
  •  Praktika

Sockets - E/A-Vorgänge

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Praktika

Sockets - Optionen

  •  Holen und Setzen von Socket-Optionen
  •  fcntl()
  •  ioctl()
  •  getsockopt() und setsockopt()
  •  Praktika

Netlink-Sockets**

  •  Was sind Netlink-Sockets?
  •  Öffnen eines Netlink-Socket
  •  Netlink-Nachrichten
  •  Praktika

Sockets - Multiplexing und Konkurrenzanwendungen

  •  Multiplexierte und nicht-blockierende Socket-E/A
  •  select()
  •  poll()
  •  pselect() und ppoll()
  •  epoll
  •  Signal-getriebene und nicht-blockierende E/A
  •  Konkurrenzfähige Server
  •  Praktika

Interprozess-Kommunikation

  •  Methoden der IPC
  •  POSIX-IPC
  •  System V IPC**
  •  Praktika

Gemeinsamer Speicher

  •  Was ist Gemeinsamer Speicher?
  •  POSIX-Gemeinsamer Speicher
  •  System V Gemeinsamer Speicher**
  •  Praktika

Semaphoren

  •  Was ist ein Semaphore?
  •  POSIX-Semaphoren
  •  System V Semaphoren**
  •  Praktika

Nachrichtenwarte

  •  Was sind Nachrichtenwarteschlangen?
  •  POSIX-Nachrichtenwarteschlangen
  •  System V Nachrichtenwarteschlangen**
  •  Praktika

Voraussetzungen

Dieser Kurs richtet sich an erfahrene Entwickler. Die Teilnehmer sollten die C-Programmierung beherrschen und mit den grundlegenden Linux Dienstprogrammen und Texteditoren vertraut sein.

Teilnehmerkreis

Dieser Kurs richtet sich an erfahrene Entwickler. Die Teilnehmer sollten die C-Programmierung beherrschen und mit den grundlegenden Linux-Hilfsprogrammen und Texteditoren vertraut sein.

Erfahrungsstufe: Fortgeschrittene

 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien