Linux Device Driver Programmierung
Seminarziel
In diesem Seminar erwerben Sie ein fundiertes Hintergrundwissen über die internen Abläufe im LINUX-Kernel. Damit sind Sie in der Lage neue Modules für den Kernel zu schreiben, oder bestehende Modules an Ihre Bedürfnisse anzupassen.
Zielgruppe
LINUX-Programmierer, die Kernel-Module entwickeln und erweitern wollen.
Themen:
- LINUX Kernel 2.6 / 3.x
- Modulstruktur
- Initialisierung/Beendigung
- Modulkonfiguration
- Semaphoren und Spinlocks
- Atomare Variablen
- Character-Device Treiber
- Kernelstrukturen file und inode
- Basisschnittstelle: open/close/read/write
- ioctl-Implementation
- Asynchronous-IO
- Blocking- und Nonblocking-IO
- poll/select-Implementation
- Zeit & Parallelität
- Zeitmessung
- Kernel Timer
- Tasklets
- Work-Queues
- Speicherallokation
- Speichertypen
- Physikalische/Virtuelle Allokation
- Hardwareanbindung
- Systemressourcen
- IO-Ports / -Speicher
- PCI-Gerätekonfiguration
- USB-Core Funktionen
- Interrupt-Handler
- Konzeption
- Handler-Interface
- Implementation mit Tasklets
- Block-Device Treiber
- USB Treiber