Vielen Dank für die Zusendung Ihrer Anfrage! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Vielen Dank, dass Sie Ihre Buchung abgeschickt haben! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
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