1.1. What Is A
Kernel Module?
So, you want to write a kernel module. You know C, you've
written a few normal programs to run as processes, and now you want
to get to where the real action is, to where a single wild pointer
can wipe out your file system and a core dump means a reboot.
What exactly is a kernel module? 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. For example, one type of module is the device driver, which
allows the kernel to access hardware connected to the system.
Without modules, we would have to build monolithic kernels and add
new functionality directly into the kernel image. Besides having
larger kernels, this has the disadvantage of requiring us to
rebuild and reboot the kernel every time we want new
functionality.