Improving operating system availability with dynamic update

Dynamic update is a mechanism that allows software updates and patches to be applied without loss of service or down-time. Dynamic update of an operating system enables administrators to defer rebooting or restarting services and the resultant disruption, without trading off the ability to apply important security fixes or improve functionality and performance through software updates. We have considered the problem of building a dynamically updatable operating system, and have designed and implemented a prototype update mechanism for the K42 research operating system. Although the prototype utilises the hot-swapping features of K42, many aspects of the design would be relevant for other operating systems. In this paper we categorise and discuss these issues, and where possible propose solutions. We also describe our current prototype.

[1]  Robert S. Fabry,et al.  How to design a system in which modules can be changed on the fly , 1976, ICSE '76.

[2]  Klaus-Peter Löhr,et al.  Dynamic Restructuring in an Experimental Operating System , 1978, IEEE Transactions on Software Engineering.

[3]  Insup Lee,et al.  DYMOS: a dynamic modification system , 1983 .

[4]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[5]  Steffen Hauptmann,et al.  On-line maintenance with on-the-fly software replacement , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[6]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[7]  Hubertus Franke,et al.  Customization Lite , 1997 .

[8]  Robert Gray,et al.  Dynamic C++ Classes - A Lightweight Mechanism to Update Code in a Running Program , 1998, USENIX Annual Technical Conference.

[9]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[10]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[11]  Dilma Da Silva,et al.  An infrastructure for multiprocessor run-time adaptation , 2002, WOSS '02.

[12]  Andy Oram,et al.  Understanding the Linux Kernel, Second Edition , 2002 .

[13]  Dilma Da Silva,et al.  Enabling Scalable Performance for General Purpose Workloads on Shared Memory Multiprocessors , 2003 .

[14]  Dilma Da Silva,et al.  System Support for Online Reconfiguration , 2003, USENIX Annual Technical Conference, General Track.

[15]  Dilma Da Silva,et al.  Enabling autonomic system software with hot-swapping , 2003 .

[16]  John Dunagan,et al.  Towards a self-managing software patching process using black-box persistent-state manifests , 2004 .