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 Training
- Zertifizierungsprogramme und digitale Abzeichen
- Linux-Distributionen
- Plattformen
- Vorbereitung des Systems
- Verwendung und Herunterladen einer virtuellen Maschine
- Änderungen in Linux
Vorbereitungen
- Prozeduren
- Standards und die LSB
Wie man an OSS-Projekten arbeitet **
- Überblick, wie man richtig beiträgt
- Bleiben Sie nah am Mainline für Sicherheit und Qualität
- Studieren und verstehen Sie die Projekt-DNA
- Finden Sie heraus, welches Problem Sie lösen möchten
- Identifizieren Sie die Maintainer und ihre Arbeitsabläufe und Methoden
- Holen Sie sich früh Feedback und arbeiten Sie offen
- Leisten Sie inkrementelle Beiträge, nicht große Code-Dumps
- Lassen Sie Ihr Ego draußen: Seien Sie nicht empfindlich
- Seien Sie geduldig, bauen Sie langfristige Beziehungen auf und helfen Sie aktiv
Kompilierer
- GCC
- Andere Kompilierer
- Wichtige gcc-Optionen
- Preprocessor
- Integrierte Entwicklungsumgebungen (IDE)
- Labs
Bibliotheken
- Statische Bibliotheken
- Dynamische Bibliotheken
- Verlinken von Bibliotheken
- Dynamischer Link Loader
- Labs
Make
- Verwendung von make und Makefiles
- Erstellung großer Projekte
- Komplexere Regeln
- Integrierte Regeln
- Labs
Quellcodeverwaltung
- Quellcodeverwaltung
- RCS und CVS
- Subversion
- git
- Labs
Debugging und Core Dumps
- gdb
- Was sind Core Dump-Dateien?
- Erstellen von Core Dumps
- Prüfen von Core Dumps
- Labs
Debugging-Werkzeuge
- Zeitbestimmung
- Profilierung und Leistung
- valgrind
- Labs
Systemaufrufe
- Systemaufrufe vs. Bibliotheks-Funktionen
- Wie Systemaufrufe durchgeführt werden
- Rückgabewerte und Fehlernummern
- Labs
Speicherverwaltung und Zuordnung
- Speicherverwaltung
- dynamische Zuordnung
- Optimierung von malloc()
- Seiten sperren
- Labs
Dateien und Dateisysteme in Linux **
- Dateien, Verzeichnisse und Geräte
- Das virtuelle Dateisystem
- das ext2/ext3-Dateisystem
- Journaling-Dateisysteme
- das ext4/-Dateisystem
- Labs
Datei-E/A
- UNIX Datei-E/A
- Öffnen und Schließen
- Lesen, Schreiben und Suchen
- Positionale und Vektoreingabe/Ausgabe
- Standard E/A-Bibliothek
- Große Datei-Unterstützung (LFS)
- Labs
Erweiterte Dateibearbeitungen
- Stat-Funktionen
- Verzeichnisfunktionen
- inotify
- Speicherabbildung
- flock() und fcntl()
- Erstellen temporärer Dateien
- Andere Systemaufrufe
- Labs
Prozesse I
- Was ist ein Prozess?
- Prozessgrenzen
- Prozessgruppen
- Das proc-Dateisystem
- Methoden zur Interprozesskommunikation
- Labs
Prozesse II
- Erstellen eines Prozesses mit system()
- Erstellen eines Prozesses mit fork()
- Erstellen eines Prozesses mit exec()
- Verwenden von clone()
- Beendigung
- Konstruktoren und Destruktoren
- Warten
- Daemon-Prozesse
- Labs
Pipes und Fifos
- Pipes und Interprozesskommunikation
- popen() und pclose()
- pipe()
- Benannte Pipes (FIFOs)
- splice(), vmsplice() und tee()
- Labs
Asynchrone E/A **
- Was ist asynchrone E/A?
- Die POSIX-Asynchron-E/A-API
- Linux-Implementierung
- Labs
Signale I
- Was sind Signale?
- Verfügbare Signale
- Versand von Signalen
- Alarms, Pausieren und Schlafen
- Einrichten eines Signal-Handlers
- Signalsets
- sigaction()
- Labs
Signale II
- Wiederholungssicherheit und Signal-Handler
- Springen und nicht-lokale Rückkehr
- siginfo und sigqueue()
- Reale Zeit-Signale
- Labs
POSIX Threads I
- Multithreading unter Linux
- Grundlegende Programmaufbau
- Erstellen und Zerstören von Threads
- Signale und Threads
- Forking vs. Threading
- Labs
POSIX Threads II
- Deadlocks und Rennenbedingungen
- Mutex-Operationen
- Semaphoren
- Futexes
- Bedingte Operationen
- Labs
Netzwerke und Sockets
- Netzwerk-Schichten
- Was sind Sockets?
- Stream-Sockets
- Datagramm-Sockets
- Rohschnitt-Sockets
- Bytereihenfolge
- Labs
Sockets Adressen und Hosts
- Socket-Adressstrukturen
- Konvertieren von IP-Adressen
- Hostinformationen
- Labs
Sockets Ports und Protokolle
- Service-Port-Informationen
- Protokollinformationen
- Labs
Sockets Clients
- Grundlegende Client-Sequenz
- socket()
- connect()
- close() und shutdown()
- UNIX-Client
- Internet-Client
- Labs
Sockets Server
- Grundlegende Server-Sequenz
- bind()
- listen()
- accept()
- UNIX-Server
- Internet-Server
- Labs
Sockets Eingabe/Ausgabe-Operationen
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
Sockets Optionen
- Abrufen und Setzen von Socket-Optionen
- fcntl()
- ioctl()
- getsockopt() und setsockopt()
- Labs
Netlink Sockets **
- Was sind Netlink-Sockets?
- Öffnen eines Netlink-Sockets
- Netlink-Nachrichten
- Labs
Sockets Multiplexing und gleichzeitige Server
- Multiplexierte und asynchrone Socket-E/A
- select()
- poll()
- pselect() und ppoll()
- epoll
- Signalgesteuerte und asynchrone E/A
- Gleichzeitige Server
- Labs
Interprozesskommunikation
- Methoden der Interprozesskommunikation
- POSIX-IPC
- System V IPC **
- Labs
Geteilter Speicher
- Was ist geteilter Speicher?
- POSIX-geteilter Speicher
- System V-geteilter Speicher **
- Labs
Semaphoren
- Was sind Semaphoren?
- POSIX-Semaphoren
- System V-Semaphoren **
- Labs
Nachrichtenwarteschlangen
- Was sind Nachrichtenwarteschlangen?
- POSIX-Nachrichtenwarteschlangen
- System V-Nachrichtenwarteschlangen **
- Labs
Voraussetzungen
Dieser Kurs richtet sich an erfahrene Entwickler. Die Teilnehmer sollten mit C-Programmierung vertraut sein und grundlegende Kenntnisse über Linux-Utilities und Texteditoren haben.
Zielgruppe
Dieser Kurs richtet sich an erfahrene Entwickler. Die Teilnehmer sollten mit C-Programmierung vertraut sein und grundlegende Kenntnisse über Linux-Utilities und Texteditoren haben.
Erfahrungsstufe: Mittel
28 Stunden