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 条
  • [21] Improving Reliability of Dynamic Software Updating Using Runtime Recovery
    Gu, Tianxiao
    Zhao, Zelin
    Ma, Xiaoxing
    Xu, Chang
    Cao, Chun
    Lu, Jian
    2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, : 257 - 264
  • [22] Verifying the design of dynamic software updating in the OTS/CafeOBJ method
    Zhang, Min
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2014, 8373 : 560 - 577
  • [23] A Method for Dynamic Software Updating in Real-Time Systems
    Seifzadeh, Habib
    Kazem, Ali Asghar Pourhaji
    Kargahi, Mehdi
    Movaghar, Ali
    PROCEEDINGS OF THE 8TH IEEE/ACIS INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE, 2009, : 34 - +
  • [24] The Effects of Static Analysis for Dynamic Software Updating: An Exploratory Study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    IEEE ACCESS, 2020, 8 : 35161 - 35171
  • [25] An Algebraic Approach to Formal Analysis of Dynamic Software Updating Mechanisms
    Zhang, Min
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 664 - 673
  • [26] μ-DSU: A Micro-Language Based Approach to Dynamic Software Updating
    Cazzola, Walter
    Chitchyan, Ruzanna
    Rashid, Awais
    Shaqiri, Albert
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2018, 51 : 71 - 89
  • [27] Analyzing software updates: Should you build a dynamic updating infrastructure?
    Gharaibeh, Bashar
    Rajan, Hridesh
    Chang, J. Morris
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2011, 6603 LNCS : 371 - 385
  • [28] Dynamic Software Updating Techniques in Practice and Educator's Guides: A Review
    Ilvonen, Ville
    Ihantola, Petri
    Mikkonen, Tommi
    2016 IEEE 29TH CONFERENCE ON SOFTWARE ENGINEERING EDUCATION AND TRAINING (CSEE&T), 2016, : 86 - 90
  • [29] Towards Applying Dynamic Software Updating for DDS-Based Applications
    Kim, Dong Kwan
    Kim, Won-Tae
    Park, Seung-Min
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2012, E95D (04): : 1151 - 1154
  • [30] Kitsune: Efficient, General-purpose Dynamic Software Updating for C
    Hayden, Christopher M.
    Smith, Edward K.
    Denchev, Michail
    Hicks, Michael
    Foster, Jeffrey S.
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 249 - 264