Kernel modules encapsulate too many policy and implementation trade-offs. No matter how you design your VM, IPC, scheduling, or IO subsystems, you will make some customers unhappy. It is argued that an operating system kernel that allows the run-time replacement of modules is an appropriate solution, especially for consumer-oriented environments. The replacement of core kernel modules allows applications to solve feature-deficiency, performance, and version-skew problems. Seamless replacement at run time allows other active applications to continue undisturbed. For example, a primitive virtual memory system might be replaced with one that supports mapped files and copy-on-write. A time-sharing scheduler might be upgraded with one that supports dead-line scheduling. An interprocess communication facility might be replaced to make a particular combination of communication options more efficient. An application known to tickle a bug in an old version of the MMU-handling code might load a more recent version of this machine-dependent code. After reviewing the motivation for this proposal, the author examines existing approaches and dismisses them as inadequate. He then considers run-time module replacement, with the goal of establishing it as a conceivable alternative worthy of further research.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
No takes yet. Share an insight, caveat, or question.
Richard Draves (2002) studied this question.
Synapse has enriched one closely related paper. Consider it for comparative context: