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
- kurze Geschichte von GNU/Linux
- Lizenzierung
- Kernel-Versionierung
- Veröffentlichungszyklus
- Kernel-Bäume
- Mainline
- Kernel vs. Nutzerraum
- Mechanismus vs. Richtlinie
- Alternativen zu Kernel-Modulen
- RTOS vs. Linux
Speicherverwaltung
- Virtueller Speicher vs. physischer Speicher
- Speicallokation im Kernel
- Seiten
- Zonen
- API
- Slab-Allokation
Kernel-Patch
- Lebenszyklus
- Git
- Kernel-Quellcode
- Patch erstellen
- Patch überprüfen
- Patch beheben
- Patch senden
- überprüfter Code
Kernel-Module
- Kernel-Quellcode holen
- Konfigurieren/Bauen/Installieren
- Gerätebetriebssysteme (statisch verknüpft, zur Laufzeit geladen)
- Initialisierung/Deinitialisierung
- Lizenzierung
- EXPORT_SYMBOL_GPL
- Out-of-tree Makefile
- Module-Init-Tools
- Modul im Kernel-Baum
- Kconfig
- Parameterübergabe
- Sparse
Char-Drivers
- Architektur
- Nutzer-/Kernel-Schnittstelle
- I/O-Subsystem
- VFS
- sysfs (Geräte, Busse, Treiber, Klassen)
- kobject/ktype/kset
- Linux-Kernel-Treibermodell
- Geräte-Dateien
-
Char-Driver
- Initialisierung
- Registrierung
- Öffnen, Freigeben
- cdev, cdev add, cdev del,...
- Haupt-/Nebenzahlen
- udev, udevmonitor, udevadm
Erweiterte Char-Device-Vorgänge
- ioctl
- unlocked ioctl
- compat ioctl
- Nutzerraum-API
- Kernelraum-API
- Prozesslebenszyklus
- Warten/Blockieren
- Schlafen/Aufwachen
- Warteschlange
- Stampede-Effekt
- poll/select
Kernel-Debugging
- Debuggen
-
Kernel-Debugging
- binäre Suche mit Git
- Debug-Support vom Kernel
- printk syslogd, klogd, Loglevels, Rate-Limiting, Debug-Level, selektive Subsystem-Debugging
- Debuggen durch Abfrage von debugfs
- OOPs-Debugging, OOPs-Auslösen
- Magic SysRq Key
- kgdb/kdb
- JTAG
Tracing
- gcov
- lcov
- oprofile
-
ftrace
- nop-Tracer
- Funktionstracer
- Sched-Switch-Tracer
- Funktionsgraphentracer
- Dynamischer Tracer
- trace-cmd/kernelshark
- perf
- LTTng
Interrupts
- Interrupts vs. Polling
- Interrupt
- Programmschritte
- Wiederholbarkeit
- Ereignisse
- Interrupt-Handler
- geteilte Interrupt-Handler
- Interruptfluss
- Interrupt-Steuerung
Aufgabenverteilung
- Top/Bottom Halves
- Softirqs
- Tasklets
- Work Queues
- Threaded Interrupts
Konkurrenz
- Kritische Region/Sektion
- Atomare Vorgänge
- Rennenbedingung
- Synchronisierung
- Verriegelung
- Lösungen für Verriegelungen
- Deadlock
- Konkurrenz
- Was soll verriegelt werden?
-
Was kann verwendet werden?
- Atomare Vorgänge
- Spinlocks
- Reader-Writer-Spinlocks
- Semaphore
- Binäre Semaphore
- Mutexes
- Reader-Writer-Semaphore
- Vollendungsvariablen
- Sequenzielle Verriegelungen
- Präemption deaktivieren
- Anordnung und Barrieren
Zeit
- HZ
- Jiffies
- große/kleine Verzögerungen
- Kernel-Timer
Hardware I/O
- I/O-Ports
- I/O-Speicher
- Wie man Nebeneffekte beim Zugriff auf Register vermeidet?
Nutzer-Kernel-Kommunikation
- put(get)_user()
- copy to(from)_user()
- Kernel I/O
- Speicherabbildung
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilität
- Wortgröße
- opake Typen
- signierte/unsigned char
- Datenausrichtung
- Integralpromotion
- Code-Weiterverwendung
- Endianess
- Systemtick
- Seitengröße
- Anweisungsreihenfolge
- SMP/Präemption/High Memory
Außer anders angegeben, sind Inhalt und Kursübersicht unter der Lizenz Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0). lizenziert.
Voraussetzungen
- Grundkenntnisse in der Benutzung eines GNU/Linux-Systems
- Grundkenntnisse in der Verwendung einer Kommandozeilenshell
- Grundkenntnisse im Entwickeln von Nutzerraum-/Anwendungen
- Fortgeschrittene Kenntnisse in C-Programmierung
- Sollten die Schulung Embedded GNU/Linux Systems Architecture besucht haben (stark empfohlen!) und/oder ein gutes Verständnis der dort behandelten Themen haben
35 Stunden
Erfahrungsberichte (3)
Alles ist in Ordnung.
Adrian Rybka - SEOyon
Kurs - Flutter Development Bootcamp with Dart
Maschinelle Übersetzung
Sehr nützliche zusätzliche Informationen
Grzegorz - Comp S.A.
Kurs - BLoC Pattern
Maschinelle Übersetzung
Sein Wissen und seine Geduld.
Chrisna - Agricatural Research Council
Kurs - Ionic 4 and Angular for Developers
Maschinelle Übersetzung