{"title":"运行时可替换内核模块的情况","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":"{\"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}","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}
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.<>