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 条
  • [41] Towards Practical Release-Level Dynamic Software Updating on Stock Java']Java Evaluating an Efficient and Safely Programmable Java']Java Dynamic Updating System
    Neumann, Martin Alexander
    COMPANION PROCEEDINGS OF THE 2016 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES AND APPLICATIONS: SOFTWARE FOR HUMANITY (SPLASH COMPANION'16), 2016, : 24 - 26
  • [42] Analysis of existing dynamic software updating techniques for safe and secure industrial control systems
    Mugarza I.
    Parra J.
    Jacob E.
    International Journal of Safety and Security Engineering, 2018, 8 (01): : 121 - 131
  • [43] Contextual Effects for Version-Consistent Dynamic Software Updating and Safe Concurrent Programming
    Neamtiu, Iulian
    Hicks, Michael
    Foster, Jeffrey S.
    Pratikakis, Polyvios
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 37 - 49
  • [44] DYNAMIC DICTIONARY UPDATING
    CRAWFORD, RG
    INFORMATION PROCESSING & MANAGEMENT, 1977, 13 (04) : 235 - 245
  • [45] Toward A Unified Operational Semantics-based Approach to Modeling and Verifying Dynamic Software Updating
    Qian, Jiaqi
    PROCEEDINGS OF 2018 IEEE 9TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS), 2018, : 649 - 652
  • [46] Data Compression for Software Updating of ECUs
    Suzuki, Naoki
    Hayashi, Toshiki
    Kiyohara, Ryozo
    2019 IEEE 23RD INTERNATIONAL SYMPOSIUM ON CONSUMER TECHNOLOGIES (ISCT), 2019, : 304 - 307
  • [47] Dynamic updating of reservoir models
    Ates H.
    Bahar A.
    Krasnov V.
    Kelkar M.
    JPT, Journal of Petroleum Technology, 2010, 62 (07): : 44 - 46
  • [48] ECU Software Updating in Future Vehicle Networks
    Onuma, Yutaka
    Terashima, Yoshiaki
    Kiyohara, Ryozo
    2017 31ST IEEE INTERNATIONAL CONFERENCE ON ADVANCED INFORMATION NETWORKING AND APPLICATIONS WORKSHOPS (IEEE WAINA 2017), 2017, : 35 - 40
  • [49] Data Compression for Software Updating to Consumer Devices
    Someya, Kazuki
    Terashima, Yoshiaki
    Sugimoto, Shunsuke
    Suzuki, Takayuki
    Kiyohara, Ryozo
    2021 IEEE INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS (ICCE), 2021,
  • [50] A software package for sparse orthogonal factorization and updating
    Edlund, O
    ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2002, 28 (04): : 448 - 482