We present SOS, an operating system that enables reconfiguration of wireless sensor networks. These networks are composed of tens of thousands of tiny nodes with very limited resources. Software on the nodes often needs to be updated post-deployment to support feature upgrades, bug fixes or redefined objectives. It is infeasible to physically reprogram each individual node due to the sheer size of the network and the often inhospitable deployment terrain. The SOS architecture enables remote insertion of binary modules into a running kernel without interrupting the system operation. The SOS core is a non-preemptive, event driven microkernel that can operate on platforms with only 4 KB of SRAM. By using a message passing mechanism and dynamic memory, function and memory references are resolved at run time enabling dynamically loadable binary modules. Native execution of the loadable modules results in superior performance over virtual machines. A complex data gathering application has been successfully tested on SOS showing the suitability of this new operating system for the wireless sensor network domain.
document