Summary

Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. A module can be configured as built-in or loadable. To dynamically load or remove a module, it has to be configured as a loadable module in the kernel configuration. ref

Types of modules

Static Modules

Static modules are those which are compiled as part of the base kernel and it is available at any time.

Dynamic Modules.

Dynamic Modules are compiled as modules separately and loaded based on user demand. These are also called as Loadable Kernel Modules(LKM).

Kernel Modules vs Kernel Drivers