Article contributed by GilbertHerschberger - 27 November 2000.
A kernel module is a plug-in for a kernel. While some kernel modules are statically linked to a kernel, others can be loaded and unloaded dynamically.
Some components can be implemented as a kernel module, and should be. Here are some of them:
real memory manager
A real memory manager plug-in would act like a memory manager. It would enable a kernel to allocate and free memory, closely associating each allocation with a self-contained process.
A file subsystem plug-in would implement a file subsystem interface. It might enable one file subsystem to plug into another. A least a root file subsystem must be available before other components. A root file subsystem may depend on a virtual memory manager.
virtual memory manager
A plug-in virtual memory manager would use a file subsystem and act like a real memory manager.
A virtual machine can be implemented as a kernel module. At link-time, a primary virtual machine is statically bound to a kernel. It is the first virtual machine to be initialized by a kernel. It is a virtual machine with the highest runtime priority.