Lightweight Online Software Updates for C Applications

Dong Kwan Kim


Software maintenance, Dynamic software updating, Safe updating points


It is obvious that software after its initial deployment changes over time statically or dynamically. Some software systems such as servers and safety-critical systems cannot allow for static code changes—fixing and rebooting a running program. Dynamic software updates (DSU) make it possible to change executing program code without rebooting or stopping. DSU systems can be used to modify applications on the fly, thus saving the programmer’s time and using computing resources more productively. This paper presents a lightweight dynamic updating system which replaces currently running software using dynamic linking. This update system implements software updates in the same process memory space. Thus, the new version of software is required to be loaded into the shard memory of the existing process's virtual memory space. The state of the old version (i.e., local and global variables) is transferred to the new one. The experimental results indicate that the proposed updating system have the potential to become an effective tool for C applications.

Important Links:

Go Back