{"title":"The case for run-time replaceable kernel modules","authors":"Richard Draves","doi":"10.1109/WWOS.1993.348155","DOIUrl":null,"url":null,"abstract":"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>>","PeriodicalId":345070,"journal":{"name":"Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1993-10-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WWOS.1993.348155","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15
Abstract
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.<>