BSN Operating Systems and Development
From Capsil Wiki
The Evolution of Operating Systems
The earliest commercial wireless sensor mote called Rene included only 512 bytes of RAM, the combined system overhead and stack use of any developed operating system had to fit within this footprint. The supporting operating system called TinyOS (see later sections) obtained this goal by implementing an elegant event-driven system, denoted primarily by a scheduler operating within a single thread of execution. The TinyOS code written in nesC has a 226 byte memory footprint adapted to early motes like the Rene  mote. Typical system execution is triggered by an event that posts one or more tasks to the queue and quickly leaves its event context. These posted tasks cannot be preemptively time sliced or system terminated. Therefore any long running processes within the queue, such as compression and encryption, will effectively block the system. Current attempts at augmenting TinyOS to address these issues are largely ad hoc and inflexible. The modifications to TinyOS become application-specific and are not integrated into the developer source, which make them difficult to use by the wider community. Compare this with today’s standard MICA2/z and TELOSB motes which provide 4 and 10 KB of RAM respectively. Therefore with this increasing resource availability it is now possible to implement multithreaded systems that handle many complex tasks simultaneously, using time-slicing and preemptive techniques. There are a host of these operating systems appearing over the past three years including MANTIS and Contiki (see later sections for details).
Full List of Operating Systems and their Sensor Nodes
Follow this Link for a full table of available Operating Systems and Corresponding Sensor Nodes. A brief description of each is also given.
Some of the More Popular Operating Systems
TinyOS  is perhaps the first operating system specifically designed for wireless sensor networks and is far and away the most popular. TinyOS started as collaboration between the University of California, Berkeley and Intel Research, and has since grown to an international consortium, called the TinyOS Alliance. TinyOS now represents a broad international community of researchers and developers in academia and industry, cooperating and competing in the open to advance the state of the art, develop a rough consensus, and provide running code. Worldwide, this technology is transferring to industries large and small. Further details on TinyOS can be found here TinyOS.
Different to TinyOS, Contiki  is an IP based operating system developed by a consortium of industry and academia led by the Swedish Institute of Computer Science. Industry players include SAP, Cisco and Atmel. Contiki is fully certified for IPV6 and has found applications where this large address range is required. It was originally designed for microcontrollers and applications where large scale was involved, however as modern wireless sensors are not much different to microcontrollers (differences in memory, power and mobility), Contiki has been adapted to large scale wireless sensor applications including road tunnel fire monitoring, intrusion detection, water monitoring in the Baltic Sea, and in surveillance networks. Some of the unique features of the Contiki OS can be found here Contiki;
The MANTIS (MultimodAl system for NeTworks of In-situ wireless Sensors)  was developed at the University of Colorado in 2002. According to the design team of Abrach et al, the design goals were “ease of use, i.e. a small learning curve that encourages novice programmers to rapidly prototype novel sensor networking applications in software and hardware, as well as flexibility, so that expert researchers can leverage or develop advanced software features and hardware extensions to suit the needs of advanced research in wireless sensor networks”. According to the design team some of the key features of MANTIS include:
- Developer friendly C API with Linux and Windows development environments
- Automatic preemptive time slicing for fast prototyping
- Diverse platform support including MICA2, MICAz, and TELOS motes
- Energy-efficient scheduler for duty-cycle sleeping of sensor node
- Small footprint (less than 500B RAM, 14KB flash)
Wireless Sensor Network Development Environments
A drawback to the operating systems considered thus far is the complex nature of the set up and programming. Knowledge of source code programming is needed to set up network sensor systems and this set up is not something that can be done quickly. So for example if a doctor or nurse or other non-technical professional wants to set up sensor network systems in the process of developing prototype solutions or in the process of performing basic research, they have to either learn the source code language (C for example) or enlist the aid of a technical professional to help them. It is much better if there is available to these non-technical people an environment that allows them to easily and quickly build sensor networks without having to resort to embedded code development. Researchers and designers can move very quickly from design and simulation to deployment, prototyping, and final system. Such an environment would have an intuitive graphical user interface operating in a drag-and-drop (windows-like) fashion with multimedia based demos, tutorials and sample programs available to use right away. This is the central idea of sensor network development environments. Some commercially available examples of high-level development environments:
- ↑ Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler and Kristofer Pister. “System architecture directions for network sensors”. Proc of the 9th International Conf. on Architectural Support for Programming Languages and Operating Systems, Nov 2000, pp. 93-104
- ↑ http//www.tinyos.org
- ↑ http://www.sics.se/contiki/
- ↑ H. Abrach,S.Bhatti,J.Carlson, H.Dai, J. Rose,A. Sheth,B. Shucker,J. Deng,R. Han. “MANTIS: System Support for MultimodAl NeTworks of In-situ Sensors” 2nd ACM International Workshop on Wireless Sensor Networks and Applications (WSNA) 2003