A Little About Kernel Modules
Kernel modules were introduced by a Dutch device driver programmer, in order to allow debugging drivers without having to reboot the system after each code modification.
Kernel modules are object files whose unresolved symbols are kernel symbols (symbols - functions, variables...).
When a module is loaded (insmod, modprobe), the loader resolves the module's missing symbols, "patches" the module's object file to point to the current kernel's symbols, and loads the module into the kernel's memory.