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
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2005年 / 27卷 / 06期
关键词
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
相关论文
共 37 条
  • [1] A survey of dynamic software updating
    Seifzadeh, Habib
    Abolhassani, Hassan
    Moshkenani, Mohsen Sadighi
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2013, 25 (05) : 535 - 568
  • [2] Practical dynamic software updating for C
    Neamtiu, Iulian
    Hicks, Michael
    Stoyle, Gareth
    Oriol, Manuel
    [J]. ACM SIGPLAN NOTICES, 2006, 41 (06) : 72 - 83
  • [3] A Framework for Practical Dynamic Software Updating
    Chen, Gang
    Jin, Hai
    Zou, Deqing
    Liang, Zhenkai
    Zhou, Bing Bing
    Wang, Hao
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2016, 27 (04) : 941 - 950
  • [4] Dynamic software updating: a systematic mapping study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    Zakari, Abubakar
    [J]. IET SOFTWARE, 2020, 14 (05) : 468 - 481
  • [5] A Hybrid Model in Dynamic Software Updating for C
    Jalili, Mehdi
    Parsa, Saeed
    Seifzadeh, Habib
    [J]. ADVANCES IN SOFTWARE ENGINEERING, PROCEEDINGS, 2009, 59 : 151 - +
  • [6] Mutatis mutandis:: Safe and predictable dynamic software updating
    Stoyle, G
    Hicks, M
    Bierman, G
    Sewell, P
    Neamtiu, I
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (01) : 183 - 194
  • [7] Mutatis Mutandis:: Safe and predictable dynamic software updating
    Stoyle, Gareth
    Hicks, Michael
    Bierman, Gavin
    Sewell, Peter
    Neamtiu, Iulian
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2007, 29 (04):
  • [8] Dynamic Software Updating for Cyber-Physical Systems
    Kang, Sungjoo
    Chun, Ingeol
    Kim, Wontae
    [J]. 18TH IEEE INTERNATIONAL SYMPOSIUM ON CONSUMER ELECTRONICS (ISCE 2014), 2014,
  • [9] Improving Reliability of Dynamic Software Updating Using Runtime Recovery
    Gu, Tianxiao
    Zhao, Zelin
    Ma, Xiaoxing
    Xu, Chang
    Cao, Chun
    Lu, Jian
    [J]. 2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, : 257 - 264
  • [10] The Effects of Static Analysis for Dynamic Software Updating: An Exploratory Study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    [J]. IEEE ACCESS, 2020, 8 : 35161 - 35171