T.-W. Kuo et al. (Eds.): EUC 2007, LNCS 4808, pp. 146–157, 2007. IFIP International Federation for Information Processing 2007 A Server-Side Pre-linking Mechanism for Updating Embedded Clients Dynamically Bor-Yeh Shen 1 and Mei-Ling Chiang 2 1 Department of Computer Science, National Chiao Tung University, Hsinchu, Taiwan, R.O.C. byshen@cs.nctu.edu.tw 2 Department of Information Management, National Chi-Nan University, Puli, Taiwan, R.O.C. joanna@ncnu.edu.tw Abstract. To allow embedded operating systems to update their components on-the-fly, dynamic update mechanism is required for operating systems to be patched or added extra functionalities in without the need of rebooting the machines. However, embedded environments are usually resource-limited in terms of memory size, processing power, power consumption, and network bandwidth. Thus, dynamic update for embedded operating systems should be designed to make the best use of limited resources. In this paper, we have proposed a server-side pre-linking mechanism to make dynamic updates of embedded operating system efficiently. Applying this mechanism can reduce not only memory usage and CPU processing time for dynamic update, but also data transmission size for update components. Power consumption can be reduced as well. Performance evaluation shows that compared with the approach of Linux loadable kernel modules, the size of update components can be reduced about 14-35% and the overheads in embedded clients are minimal. Keywords: Embedded System, Operating System, Dynamic Update, Modules, LyraOS. 1 Introduction Dynamic update allows operating systems to update their components on-the-fly without rebooting the whole systems or stopping any system services. This opens up a wide range of opportunities: fixing bugs, upgrading services, improving algorithms, adding extra functionalities, runtime optimization, etc. Although many operating systems have already supported different kinds of mechanisms to extend their kernels, they usually do not aim at resource-limited environments. For instance, Linux uses a technique called loadable kernel modules (LKMs) [1]. By using this technique, Linux can load modules, such as device drivers, file systems, or system call to extend the kernel at run time. However, LKMs may take lots of overheads in embedded environments. Since embedded systems are usually resource limited, in order to keep the added overheads minimal while providing dynamic update in an embedded operating system, we propose the server-side pre-linking mechanism which is a