Dynamic Configuration for Distributed Systems
IEEE Transactions on Software Engineering
The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Linkers and Loaders
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Runtime Support for Type-Safe Dynamic Java Classes
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Think: A Software Framework for Component-based Operating System Kernels
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Dynamic C++ classes: a lightweight mechanism to update code in a running program
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Contemporary operating system kernels are able to improve their functionality by installing kernel extensions at runtime. However, when an existing kernel extension needs to be upgraded, it must be completely removed before the new kernel extension is installed. Consequently, the new kernel extension needs to be run from the beginning, which also influences the applications using this kernel extension. This work describes the design and implementation of a Linux module system that supports hotswapping, in which a module can be replaced while it is in use. Rather than completely removing the old module, the new module can inherit the state held by the old module so the dependent applications are not affected. For example, a Linux file system module can be hotswapped without unmounting the corresponding partitions and terminating the applications that use these partitions. The proposed system is implemented on Linux kernel 2.6.11. Existing modules can be loaded into the hotswap system without change and can be hotswapped by changing only a few lines. Additionally, the hotswap system does not impose any runtime overhead on module invocations.