This paper introduces LiteOS, an operating system that provides Unix-like abstractions to wireless sensor networks. LiteOS maps a sensor network into a UNIX-like file system, and supports extremely resource-constrained nodes such as MicaZ. It supports C programming natively, and allows on-line debugging to locate application bugs.
We believe that such an operating system could potentially expand the circle of sensor network application developers by providing a familiar programming environment. While TinyOS and its extensions have significantly improved programmability of mote-class embedded devices via a robust, modular environment, NesC and the event-based programming model introduce a learning curve for most developers outside the sensor networks circle.
The purpose of LiteOS is to significantly reduce such a learning curve. This philosophy is the operating system equivalent of network directions taken by companies such as Arch Rock (that superimposes a familiar IP space on mote platforms to reduce the learning curve of network programming and management).
Our key contribution is to present a familiar, Unix-like abstraction for wireless sensor networks by leveraging the likely existing knowledge that common system programmers (outside the current sensor network community) already have: Unix, threads, and C.
By mapping sensor networks to file directories, it allows applying user-friendly operations, such as file directory commands, to sensor networks, therefore reducing the learning curve for operating and programming sensor networks.
LiteOS differs from both current sensor network oper- ating systems and more conventional embedded operating systems. Compared to the former category, such as TinyOS, LiteOS provides a more familiar environment to the user. Its features are either not available in existing sensor network operating systems, such as the shell and the hierarchical file system, or are only partially supported.
Compared to the latter category (conventional embedded operating systems), such as VxWorks, eCos, embedded Linux, and Windows CE, LiteOS has a much smaller code footprint, running on platforms such as MicaZ, with an 8MHz CPU, 128K bytes of program flash, and 4K bytes of RAM. Embedded operating systems, such as VxWorks, require more computation power (e.g., ARM-based or XScale-based processors) and more RAM (at least tens of KBytes), and thus cannot be easily ported to MicaZ-class hardware platforms (such as MicaZ, Tmote, and Telos).
Aiming to be an easy-to-use platform, LiteOS offers a number of novel features, including: (1) a hierarchical file system and a wireless shell interface for user interaction using UNIX-like commands; (2) kernel support for dynamic loading and native execution of multithreaded applications; and (3) online debugging, dynamic memory, and file system assisted communication stacks. LiteOS also supports software updates through a separation between the kernel and user applications, which are bridged through a suite of system calls.
To read this external content in full, download the paper from the author archives at the University of Virginia.