Linux Kernel Driver Development Basics (14.12.2020)¶
Agenda¶
The training will be based upon Kernelprogrammierung: Einführung.
Modules
Driver initialization and deinitialization
Module loading and unloading
Devices
Device special files
sysfs
Communicating with user space
Synchroniztion Mechanisms.
Semaphore
Mutex
Spinlock
Read Copy Update (RCU)
Communication Mechanisms: Wait Queues
Interrupt Handling and “Bottom Halves”
SoftIRQ
Tasklet
Threaded IRSs
Memory management
kmalloc()
and friendsAccessing user space memory
-
Physical and virtual CPU addresses
DMA/Bus addresses
DMA mappings: consistent/coherent vs. streaming
PCI Subsystem
Device initialization
Register (“BAR”) access
Network-Subsystem/NAPI