skip to main content
research-article

Kitsune: efficient, general-purpose dynamic software updating for C

Authors Info & Claims
Published:19 October 2012Publication History
Skip Abstract Section

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.

References

  1. G. Altekar, I. Bagrak, P. Burstein, and A. Schultz. OPUS: Online patches and updates for security. In Proc. USENIX Security, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Arnold and M. F. Kaashoek. Ksplice: automatic rebootless kernel updates. In Proc. EuroSys, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. H. Chen, R. Chen, F. Zhang, B. Zang, and P.-C. Yew. Live updating operating systems using virtualization. In Proc. VEE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Condit, M. Harren, Z. Anderson, D. Gay, and G. C. Necula. Dependent types for low-level programming. In Proc. ESOP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. M. Hicks and S. Nettles. Dynamic software updating. ACM TOPLAS, 27(6), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. Makris and R. Bazzi. Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction. In USENIX ATC, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Makris and K. D. Ryu. Dynamic and Adaptive Updates of Non-Quiescent Subsystems in Commodity Operating System Kernels. In Proc. EuroSys, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney. Producing wrong data without doing anything obviously wrong! In Proc. ASPLOS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. I. Neamtiu and M. Hicks. Safe and timely dynamic updates for multi-threaded programs. In Proc. PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical dynamic software updating for C. In Proc. PLDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E. Roman. A survey of checkpoint/restart implementations. Technical report, Lawrence Berkeley National Laboratory, Tech, 2002.Google ScholarGoogle Scholar
  19. S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic Software Updates: A VM-centric Approach. In Proc. PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. ZeroTurnaround. LiveRebel. http://www.zeroturnaround.com/liverebel.Google ScholarGoogle Scholar

Index Terms

  1. Kitsune: efficient, general-purpose dynamic software updating for C

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 47, Issue 10
            OOPSLA '12
            October 2012
            1011 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/2398857
            Issue’s Table of Contents
            • cover image ACM Conferences
              OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
              October 2012
              1052 pages
              ISBN:9781450315616
              DOI:10.1145/2384616

            Copyright © 2012 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 19 October 2012

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!