NOTE - this page is as much a confirmation of my knowledge as it is a presentation to readers - please correct and comment as much as possible, as I need to understand this thoroughly! - if you're satisfied with the content, removing this NOTE will tell me that it's technically correct.
A module is a set of software that is not part of the core kernel yet can be integrated with it through the kernel kbuild procedure or at runtime. Modules always operate in "kernel space."
Some properties of all kernel modules:
- Modules can either be "tightly bound" to the kernel, as part
of the linux image, or they can be "loosely bound" and added later, however they all must conform to the standard Linux module interface.
- Modules are limited to using kernel-provided functions and types. For example they cannot use
GNU C-library calls, since the C-Libraries are user-space libaraies.
- Modules can be added and removed without restarting the operating system.
Device Drivers are special modules that provide one or more files in the /dev filesystem.