Browse > Article
http://dx.doi.org/10.9708/jksci.2013.18.4.001

An Implementation of Dynamic Software Update System for C Application Programs  

Shin, Dongha (Division of Computer Science, Sangmyung University)
Kim, Ji-Hyeon (Department of Computer Science, the Graduate School)
Abstract
Dynamic Software Update(DSU) is a technique, which updates a new version of the software to a running process without stopping. Many DSU systems that update C application programs are introduced. However, these DSU systems differ in implementation method or in main features. In this paper, we propose a new DSU system that can solve some disadvantages of existing DSU systems. DSU system presented in this paper splits existing program to code, global data and local data and then updates each part of the program considering the characteristics of the respective parts. The proposed system in this paper is implemented and tested on Linux. Also, we compared our DSU system with other DSU systems and we could find some strength of our DSU system. First, the code memory usage of our DSU system can be efficient since our system does not need to maintain code of an old version. Second, the global data memory waste is small because our system does not need to allocate the global data again which is not modified in the new version. Finally, we restore local data of old version in stack area of the new version using stack reconstruction technique. This paper is meaningful since we proposed a new DSU method and we implemented a full DSU system using the method.
Keywords
Dynamic Software Update; C Application Program; Virtual Memory; Software Update;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 D. Gupta, and P. Jalote, "On-line Software Version Change Using State Transfer Between Processes," Software Practice and Experience, Vol. 23, No. 9, pp. 949-964, September. 1993.   DOI   ScienceOn
2 Jae Hong Cheon, Dea-Woo Park, "A Dynamic Update Engine of IPS for a DoS Attack Prevention of VoIP," Journal of the Korea Society of Computer and Information, Vol. 11, No. 6, pp. 165-174, December. 2006.   과학기술학회마을
3 I. Neamtiu, M. Hicks, G. Stoyle and M. Oriol, "Practical Dynamic Software Updating for C, " Proceedings of Programming Language Design and Implementation, pp. 72-83, Ottawa, Canada, June 2006.
4 I. Neamtiu and M. Hicks, "Safe and timely dynamic updates for multithreaded programs," Proceedings of Programming Language Design and Implementation, pp. 13-24, Dublin, Ireland, June 2009
5 K. Makris and R. A. Bazzi, "Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction," Proceedings of the 2009 conference on USENIX Annual Technical Conference, pp. 397-410, June 2009.
6 K. Makris, "Whole-Program Dynamic Software Updating," PhD thesis, Arizona State University, December 2009.
7 C. M. Hayden, E. K. Smith, M. Hicks and J. S. Foster, "State Transfer for Clear and Efficient Runtime Updates, In Third Workshop on Hot Topics in Software Upgrades, pp. 179-184, April 2011.
8 C. M. Hayden, E. K. Smith, M. Denchev, M. Hicks and J. S. Foster, "Kitsune: Efficient, General-purpose Dynamic Software Updating for C," Proceedings of the ACM international conference on Object oriented programming systems languages and applications, pp. 249-264, October 2012.
9 D. Gupta, P. Jalote, Senior Member, IEEE, and G. Baura, "A Formal Framework for On-line Software Version Change," IEEE Transactions on Software Engineering, Vol. 22, No. 2, pp. 120-131, February 1996.   DOI   ScienceOn
10 Linux Man Pages, Nov 2003, http://www.linuxmanpages.com/man3/
11 V. Paxon, W. Estes and J. Millaway, Lexical Analysis With Flex, Edition 2.5.35, The Regents of the University of California, 2008, http://flex.sourceforge.net
12 C. Donnelly and R. Stallman, Bison, Version 2.3, Free Software Foundation, Inc., 2006, http://www.gnu.org/software/bison
13 Jutta Degener, ANSI C Yacc Grammar, 2011, http://www.quut.com/c/ANSI-C-grammar-y.html
14 thttpd- tiny/turbo/throttling HTTP server 2.25b, Jul 2012, http://acme.com/software/thttpd/