Linux kernel modules
Kernel modules efficiently extend the functionality of the Linux kernel and are an integral part of its modular nature. Without kernel modules, we would need to integrate the relevant source code into the entire kernel, rebuild the Linux kernel, and reload it on our system to observe the impact of our addition. While this may be acceptable for a production environment, this long feedback loop would need to be more efficient for development. This would significantly impede the development of device drivers since any minor adjustment would require a rebuild of the entire Linux kernel and a reboot of the whole system. Kernel modules can shortcut this process by allowing code to be added to the Linux kernel during runtime. The development process can be described using the following diagram:

Figure 3.10 – Kernel module implementation workflow
First, we implement a particular feature as a kernel module. Second, we cross-compile it and transfer the...