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 条
  • [31] Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?
    Gharaibeh, Bashar
    Rajan, Hridesh
    Chang, J. Morris
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, 2011, 6603 : 371 - 385
  • [32] Kitsune: Efficient, General-Purpose Dynamic Software Updating for C
    Hayden, Christopher M.
    Saur, Karla
    Smith, Edward K.
    Hicks, Michael
    Foster, Jeffrey S.
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (04): : 1 - 38
  • [33] Incrementally updating software
    Keogh, J
    DR DOBBS JOURNAL, 2006, 31 (05): : 30 - +
  • [34] Low-Disruptive and Timely Dynamic Software Updating of Smart Grid Components
    Neumann, Martin Alexander
    Bach, Christoph Tobias
    Ding, Yong
    Riedel, Till
    Beigl, Michael
    SMART GRID INSPIRED FUTURE TECHNOLOGIES, 2017, 203 : 155 - 171
  • [35] Dodging Unsafe Update Points in Java']Java Dynamic Software Updating Systems
    Cazzola, Walter
    Jalili, Mehdi
    2016 IEEE 27TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2016, : 332 - 341
  • [36] Speedup Automatic Program Repair Using Dynamic Software Updating: An Empirical Study
    Guo, Rongxun
    Gu, Tianxiao
    Yao, Yuan
    Xu, Feng
    Ma, Xiaoxing
    11TH ASIA-PACIFIC SYMPOSIUM ON INTERNETWARE (INTERNETWARE 2019), 2019,
  • [37] Dynamic Software Updating of IEC 61499 Implementation Using Erlang Runtime System
    Prenzel, Laurin
    Provost, Julien
    IFAC PAPERSONLINE, 2017, 50 (01): : 12416 - 12421
  • [38] Tales of Software Updates: The process of updating software
    Vaniea, Kami
    Rashidi, Yasmeen
    34TH ANNUAL CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, CHI 2016, 2016, : 3215 - 3226
  • [39] A Method of ECU Software Updating
    Onuma, Yutaka
    Terashima, Yoshiaki
    Nakamura, Sumika
    Kiyohara, Ryozo
    2018 32ND INTERNATIONAL CONFERENCE ON INFORMATION NETWORKING (ICOIN), 2018, : 298 - 303
  • [40] Contextual effects for version-consistent dynamic software updating and safe concurrent programming
    Neamtiu, Iulian
    Hicks, Michael
    Foster, Jeffrey S.
    Pratikakis, Polyvios
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 37 - 49