Kernel module is an easy and effective mechanism to extend the functionality of a running system without the baggage of rebuilding the whole kernel, they have been vital in ushering dynamism and scalability to the Linux operating system. Kernel modules not only satiate the extendable nature of the kernel but also usher the following functionalities:
- Allowing kernel the ability to only keep features which are necessary, in-turn boosting capacity utilization
- Allowing proprietary/non-GPL compliant services to load and unload
- The bottom-line feature of extensibility of the kernel
Each module object comprises of the init(constructor) and exit(destructor) routines. The init routine is invoked when a module is deployed into kernel address space, and the exit routine is called while the module is being removed. As the name innately suggests, the init routine is usually programmed to carry out operations and actions which are essential to set up the module body: such...