Abstract
Dynamic software updating (DSU) systems allow programs to be updated while running, thereby permitting developers to add features and fix bugs without downtime. This paper introduces Kitsune, a new DSU system for C whose design has three notable features. First, Kitsune's updating mechanism updates the whole program, not individual functions. This mechanism is more flexible than most prior approaches and places no restrictions on data representations or allowed compiler optimizations. Second, Kitsune makes the important aspects of updating explicit in the program text, making the program's semantics easy to understand while minimizing programmer effort. Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by new code; such state transformation is often necessary, and is significantly more difficult in prior DSU systems. We have used Kitsune to update five popular, open-source, single- and multi-threaded programs, and find that few program changes are required to use Kitsune, and that it incurs essentially no performance overhead.
- G. Altekar, I. Bagrak, P. Burstein, and A. Schultz. OPUS: Online patches and updates for security. In Proc. USENIX Security, 2005. Google Scholar
Digital Library
- J. Arnold and M. F. Kaashoek. Ksplice: automatic rebootless kernel updates. In Proc. EuroSys, 2009. Google Scholar
Digital Library
- A. Baumann, J. Appavoo, D. D. Silva, J. Kerr, O. Krieger, and R. W. Wisniewski. Providing dynamic update in an operating system. In Proc. USENIX ATC, 2005. Google Scholar
Digital Library
- H. Chen, R. Chen, F. Zhang, B. Zang, and P.-C. Yew. Live updating operating systems using virtualization. In Proc. VEE, 2006. Google Scholar
Digital Library
- H. Chen, J. Yu, C. Hang, B. Zang, and P.-C. Yew. Dynamic software updating using a relaxed consistency model. IEEE Transactions on Software Engineering, 37(5), 2011. Google Scholar
Digital Library
- J. Condit, M. Harren, Z. Anderson, D. Gay, and G. C. Necula. Dependent types for low-level programming. In Proc. ESOP, 2007. Google Scholar
Digital Library
- S. Gilmore, D. Kirli, and C. Walton. Dynamic ML without dynamic types. Technical Report ECS-LFCS-97-378, LFCS, University of Edinburgh, 1997. URL http://www.dcs.ed.ac.uk/home/stg/DynamicML/dynamic.ps.gz.Google Scholar
- C. M. Hayden, E. K. Smith, E. A. Hardisty, M. Hicks, and J. S. Foster. Evaluating dynamic software update safety using efficient systematic testing. IEEE Transactions on Software Engineering, 99(PrePrints), Sept. 2011.Google Scholar
- C. M. Hayden, E. K. Smith, M. Hicks, and J. S. Foster. State transfer for clear and efficient runtime upgrades. In Proc. HotSWUp, 2011. Google Scholar
Digital Library
- C. M. Hayden, S. Magill, M. Hicks, N. Foster, and J. S. Foster. Specifying and verifying the correctness of dynamic software updates. In Proc. International Conference on Verified Software: Theories, Tools, and Experiments (VSTTE), 2012. Google Scholar
Digital Library
- C. M. Hayden, K. Saur, M. Hicks, and J. S. Foster. A study of dynamic software update quiescence for multithreaded programs. In Proc. HotSWUp, 2012.Google Scholar
Cross Ref
- M. Hicks and S. Nettles. Dynamic software updating. ACM TOPLAS, 27(6), 2005. Google Scholar
Digital Library
- K. Makris and R. Bazzi. Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction. In USENIX ATC, 2009. Google Scholar
Digital Library
- K. Makris and K. D. Ryu. Dynamic and Adaptive Updates of Non-Quiescent Subsystems in Commodity Operating System Kernels. In Proc. EuroSys, 2007. Google Scholar
Digital Library
- T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney. Producing wrong data without doing anything obviously wrong! In Proc. ASPLOS, 2009. Google Scholar
Digital Library
- I. Neamtiu and M. Hicks. Safe and timely dynamic updates for multi-threaded programs. In Proc. PLDI, 2009. Google Scholar
Digital Library
- I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical dynamic software updating for C. In Proc. PLDI, 2006. Google Scholar
Digital Library
- E. Roman. A survey of checkpoint/restart implementations. Technical report, Lawrence Berkeley National Laboratory, Tech, 2002.Google Scholar
- S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic Software Updates: A VM-centric Approach. In Proc. PLDI, 2009. Google Scholar
Digital Library
- ZeroTurnaround. LiveRebel. http://www.zeroturnaround.com/liverebel.Google Scholar
Index Terms
Kitsune: efficient, general-purpose dynamic software updating for C
Recommendations
MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution
ASPLOS '19: Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating SystemsDynamic Software Updating (DSU) is a technique for patching stateful software without shutting it down, which enables both timely updates and non-stop service. Unfortunately, bugs in the update itself---whether in the changed code or in the way the ...
Kitsune: Efficient, General-Purpose Dynamic Software Updating for C
Dynamic software updating (DSU) systems facilitate software updates to running programs, thereby permitting developers to add features and fix bugs without downtime. This article introduces Kitsune, a DSU system for C. Kitsune’s design has three notable ...
Kitsune: efficient, general-purpose dynamic software updating for C
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsDynamic software updating (DSU) systems allow programs to be updated while running, thereby permitting developers to add features and fix bugs without downtime. This paper introduces Kitsune, a new DSU system for C whose design has three notable ...







Comments