Linux Kernel Driver Development Basics (14.12.2020)¶
Agenda¶
The training will be based upon Linux Kernel Driver Development.
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