Dynamic linking and loading in networked embedded systems

We present a holistic dynamic linking and loading mechanism in networked embedded systems. Our design and implementation are guided by four requirements, which are to provide (i) minimal code size (ii) efficient execution and loading speed (iii) portable design (iv) isolated kernel/application development. First, we develop a tool to minimize the standard ELF format via many techniques in order to reduce the code dissemination cost. Second, we employ the techniques of pre-relocating and pre-linking (to kernel functions) to reduce the run-time linking overhead, thus improving the loading speed. Third, based on relocatable ELF and the modular design of the dynamic linker and loader, our approach can be easily ported to different platforms. Fourth, by maintaining a kernel jump table, we provide a clean isolation between kernel and application development. We have implemented the dynamic linking and loading mechanism on SenSpire OS, a micro sensor node operating system. The evaluation results show that our design and implementation meet our design goals: the code size of our SELF format is only 15%–30% of that of standard ELF, 38%–83% of that of CELF, a compact ELF format for the Contiki operating system; the loading speed improvement varies from 40%–50% compared to the standard mechanism; our design is portable to both MicaZ and TelosB motes, and we allow updating both application modules and kernel services in isolation without prior knowledge about the whole system information.

[1]  John R. White,et al.  Linkers and Loaders , 1972, CSUR.

[2]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[3]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[4]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[5]  Limin Wang,et al.  MNP: Multihop Network Reprogramming Service for Sensor Networks , 2004, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[6]  Jens Palsberg,et al.  Avrora: scalable sensor network simulation with precise timing , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[7]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[8]  Joel Koshy,et al.  Remote incremental linking for energy-efficient reprogramming of sensor networks , 2005, Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005..

[9]  Prasun Sinha,et al.  Sprinkler: a reliable and energy efficient data dissemination service for wireless embedded devices , 2005, 26th IEEE International Real-Time Systems Symposium (RTSS'05).

[10]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[11]  Hojung Cha,et al.  Supporting Application-Oriented Kernel Functionality for Resource Constrained Wireless Sensor Nodes , 2006, MSN.

[12]  Qiang Wang,et al.  Reprogramming wireless sensor networks: challenges and approaches , 2006, IEEE Network.

[13]  Adam Dunkels,et al.  Run-time dynamic linking for reprogramming wireless sensor networks , 2006, SenSys '06.

[14]  Issa M. Khalil,et al.  Stream: Low Overhead Wireless Reprogramming for Sensor Networks , 2007, IEEE INFOCOM 2007 - 26th IEEE International Conference on Computer Communications.

[15]  Hojung Cha,et al.  RETOS: resilient, expandable, and threaded operating system for wireless sensor networks , 2007, IPSN.

[16]  Hojung Cha,et al.  RETOS: Resilient, Expandable, and Threaded Operating System for Wireless Sensor Networks , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[17]  Henrik Thane,et al.  Dynamic Patching of Embedded Software , 2007, 13th IEEE Real Time and Embedded Technology and Applications Symposium (RTAS'07).

[18]  Tarek F. Abdelzaher,et al.  The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks , 2008, 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008).

[19]  Adam Dunkels,et al.  Efficient Sensor Network Reprogramming through Compression of Executable Modules , 2008, 2008 5th Annual IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks.

[20]  Roger Wattenhofer,et al.  Decoding Code on a Sensor Node , 2008, DCOSS.

[21]  Saurabh Bagchi,et al.  Energy-efficient on-demand reprogramming of large-scale sensor networks , 2008, TOSN.

[22]  Luca Mottola,et al.  FiGaRo: Fine-Grained Software Reconfiguration for Wireless Sensor Networks , 2008, EWSN.

[23]  Wei Dong,et al.  Providing OS Support for Wireless Sensor Networks: Challenges and Approaches , 2010, IEEE Communications Surveys & Tutorials.