Anmeldung zum Seminar
Wenn Sie an diesem Seminar teilnehmen wollen, füllen Sie folgendes Formular aus.Die mit * gekennzeichneten Felder müssen ausgefüllt werden.
In dieser 4-tägigen Schulung erhalten Sie fundierte Kenntnisse über die Erstellung von Gerätetreibern sowie ein tiefgehendes Verständnis für den Linux-Kernel. Dabei erlernen Sie die Arbeit mit APIs und Treiberarten und vertiefen Ihr Wissen durch praxisnahe Übungen, beispielsweise Cross-Compiling auf ARM-Hardware.
Dieser Kurs zeigt Ihnen nicht nur die wichtigsten Funktionen und Mechanismen der Gerätetreiberentwicklung, sondern bietet auch Einblicke in Kernel-Architekturen und Algorithmen. Kursinhalte
Dieser Kurs zeigt Ihnen nicht nur die wichtigsten Funktionen und Mechanismen der Gerätetreiberentwicklung, sondern bietet auch Einblicke in Kernel-Architekturen und Algorithmen. Kursinhalte
Einführung & Überblick:
- Verwendung von git und Kernel-Versionen
- Hardwareanforderungen und Cross-Compiler
Arbeiten mit OSS-Projekten:
- Beitragen, Maintainer finden, Arbeitsabläufe verstehen
- Geduld, langsame Verbesserung und Teamarbeit
Entwicklungstools:
- Verschiedene Toolchains: Yocto, Buildroot, Linaro, etc.
- QEMU zur Emulation und Entwicklung
Gerätetreiber & Speicherverwaltung:
- Gerätetreiber für verschiedene Geräte und Ressourcenverwaltung
- Virtueller/physischer Speicher, Slab-Caching, kmalloc, etc.
Interrupts & Fehlerbehandlung:
- IRQs, asynchrone Interrupts und deren Handhabung
- Direkter Speicherzugriff (DMA), I/O-Zuweisung
Speicherverwaltung:
- Zuweisung von Seiten, Buddy-System und Speicherpools
- Arbeiten mit Cache- und Slab-Methoden
Timer und Zeitmessungen:
- Nutzung von Kernel-Timern, Messmethoden und Jiffies
- High-/Low-Resolution Timer
Synchronisation und Race Conditions:
- Spinlocks, Semaphore, RCU, Mutex und atomare Operationen
Spezialthemen:
- Device Trees und deren Syntax
- USB-Treiberentwicklung und Flash-Dateisysteme
Übertragung zwischen User-Space und Kernel-Space:
- Speichermapping, Datenübertragung, Systemaufrufe
System- und Kernel-Architektur:
- Unterschiede zwischen Monolithischen und Mikrokernen
- Umgang mit Prozessen und Threads im Kernel
Kernel-Konfiguration und -Kompilierung:
- Kompilieren und Erstellen von Kernel-Patches
- Kernel-Quellcode, Makefiles, initrd