Dynamic software updating

被引:8
|
作者
Hicks, M
Nettles, S
机构
[1] Univ Maryland, Dept Comp Sci, College Pk, MD 20742 USA
[2] Univ Texas, Austin, TX 78712 USA
关键词
dynamic software updating; typed assembly language;
D O I
10.1145/1108970.1108971
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many important applications must run continuously and without interruption, and yet also must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, ease of use, and low cost. We present an approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner-code, data, and types may be updated, at programmer-determined times-and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that contain both the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code or Typed Assembly Language), which is native code accompanied by annotations that allow online verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable. To concretely illustrate our system, we have implemented a dynamically updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd, and generalize to present observations about updateable software development. Performance experiments show that for FlashEd, the overhead due to updating is low: typically less than 1 percent.
引用
收藏
页码:1049 / 1096
页数:48
相关论文
共 50 条
  • [1] Dynamic software updating
    Hicks, M
    Moore, JT
    Nettles, S
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 13 - 23
  • [2] Challenges in Dynamic Software Updating
    Mlinaric, Danijel
    TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS, 2020, 9 (01): : 117 - 128
  • [3] A survey of dynamic software updating
    Seifzadeh, Habib
    Abolhassani, Hassan
    Moshkenani, Mohsen Sadighi
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2013, 25 (05) : 535 - 568
  • [4] Practical dynamic software updating for C
    Neamtiu, Iulian
    Hicks, Michael
    Stoyle, Gareth
    Oriol, Manuel
    ACM SIGPLAN NOTICES, 2006, 41 (06) : 72 - 83
  • [5] A Framework for Practical Dynamic Software Updating
    Chen, Gang
    Jin, Hai
    Zou, Deqing
    Liang, Zhenkai
    Zhou, Bing Bing
    Wang, Hao
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2016, 27 (04) : 941 - 950
  • [6] Formalizing class dynamic software updating
    Zhang, Shi
    Huang, LinPeng
    QSIC 2006: SIXTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2006, : 403 - +
  • [7] Automating Object Transformations for Dynamic Software Updating
    Magill, Stephen
    Hicks, Michael
    Subramanian, Suriya
    McKinley, Kathryn S.
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 265 - 280
  • [8] Dynamic software updating: a systematic mapping study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    Zakari, Abubakar
    IET SOFTWARE, 2020, 14 (05) : 468 - 481
  • [9] State of the art of dynamic software updating in Java
    Gregersen, Allan Raundahl
    Rasmussen, Michael
    Jørgensen, Bo Nørregaard
    Communications in Computer and Information Science, 2014, 457 : 99 - 113
  • [10] A technique for dynamic updating of Java']Java software
    Orso, A
    Rao, A
    Harrold, MJ
    INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2002, : 649 - 658