October 2017
Intermediate to advanced
586 pages
14h 8m
English
Kernel drivers all have entry and exit points: the former correspond to the function called when the module is loaded (modprobe, insmod) and the latter are the function executed at module unloading (at rmmod or modprobe -r).
We all remember the main() function, which is the entry point for every user space program written in C/C++; it exits when that same function returns. With kernel modules, things are different. The entry point can have any name you want, and unlike a user space program that exits when main() returns, the exit point is defined in another function. All you need to do is to inform the kernel which functions should be executed as an entry or exit point. The actual functions helloworld_init and ...