LFD430 Entwicklung von Gerätetreibern für Linux-Systeme

In diesem Kurs erlernen Sie die Entwicklung von Gerätetreibern für Linux-Systeme und entwickeln ein grundlegendes Verständnis des Linux-Kernels.

Sie lernen folgendes kennen:

  • Verschiedene Arten von Gerätetreibern in Linux
  • Geeignete APIs zur Verbindung der Geräte (Hardware und Software) mit dem Kernel
  • Erforderliche Module und Methoden zur Entwicklung und zum Debuggen von Linux-Treibern
  • Und vieles mehr

Die im Kurs vermittelten Inhalte lassen sich auf alle großen Linux-Distributionen anwenden.

Voraussetzungen

Dieser Kurs richtet sich an alle, die lernen wollen, wie man Gerätetreiber für Linux entwickelt. Die Teilnehmer sollten solide C-Programmierkenntnisse haben und mit den wichtigsten Linux-Dienstprogrammen und Text-Editoren vertraut sein.

Kenntnisse der wesentlichen Kernel-Schnittstellen und Techniken, wie dem Compilieren und Schreiben bzw. Load und Unload von Modulen, die Anwendung von Synchronisationsfunktionen sowie die Grundlagen von Speicherzuweisung und -verwaltung wie im Kurs Linux-Systemprogrammierung vermittelt.

Inhalt

  1. Einführung
  2. Überblick
  3. Gerätetreiber
  4. Module und Gerätetreiber
  5. Speicherverwaltung und -zuweisung
  6. Zeichenorientierte Geräte
  7. Kernel-Funktionen
  8. Übertragung zwischen User- und Kernel-Space
  9. Interrupts und Exceptions
  10. Zeitmessungen
  11. Kernel-Timer
  12. ioctls
  13. Unified Device Model und sysfs
  14. Firmware
  15. Schlafen und Warteschlangen
  16. Interruptbehandlung: verzögerte Funktionen und Benutzer-Treiber
  17. Hardware-I/O
  18. PCI
  19. Plattform-Treiber **
  20. Gerätebäume **
  21. Direct Memory Access (DMA)
  22. Netzwerk-Treiber I: Grundlagen
  23. Netzwerk-Treiber II: Datenstrukturen
  24. Netzwerk-Treiber III: Senden und Empfangen
  25. Netzwerk-Treiber IV: Ausgewählte Themen
  26. USB-Treiber
  27. Power-Management
  28. Block-Treiber

** Diese Abschnitte können entweder zum Teil oder in vollem Umfang abgehandelt werden. Sie beinhalten z.B. Hintergrundinformationen, spezielle Themen oder fortgeschrittene Themen. Je nach Erfahrungsstand der Teilnehmergruppe oder zeitlichen Gegebenheiten entscheidet der Kursleiter, ob und welchem Umfang diese Abschnitte behandelt werden.