skip to main content
10.1145/2384616.2384635acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

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

Authors Info & Claims
Published:19 October 2012Publication History

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
          • Published in

            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
            • 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

            Copyright © 2012 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 19 October 2012

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate268of1,244submissions,22%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader