FACTOID # 45: American adults have spent more time than anyone in education .
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "TinyOS" also viewed:
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > TinyOS

TinyOS is an open source component-based operating system and platform targeting wireless sensor networks (WSNs). TinyOS is an embedded operating system written in the nesC programming language as a set of cooperating tasks and processes. It is intended to be incorporated into smartdust. TinyOS started as a collaboration between the University of California, Berkeley in co-operation with Intel Research, and has since grown to a be an international consortium, the TinyOS Alliance. Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ... // An operating system (OS) is the software that manages the sharing of the resources of a computer. ... “WSN” redirects here. ... nesC (network embedded systems C) is a programming language designed to build applications for the TinyOS platform. ... Smartdust is a hypothetical network of tiny wireless microelectromechanical systems (MEMS) sensors, robots, or devices, installed with wireless communications, that can detect anything from light and temperature, to vibrations, etc. ... Sather tower (the Campanile) looking out over the San Francisco Bay and Mount Tamalpais. ... Intel redirects here. ...

Contents

Implementation

TinyOS applications are written in nesC, a dialect of the C programming language optimized for the memory limitations of sensor networks. Its supplemental tools come mainly in the form of Java and shell script front-ends. Associated libraries and tools, such as the NesC compiler and AVR binutils toolchains, are mostly written in C. nesC (network embedded systems C) is a programming language designed to build applications for the TinyOS platform. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... “Java language” redirects here. ... The AVR is a Harvard architecture 8-bit RISC single chip microcontroller (µC) which was developed by Atmel in 1996. ...


TinyOS provides builtin interfaces, components, and sensor-board specific configurations, which allow programmers to build programs as a set of modules, which perform program-specific tasks. TinyOS components provide interface to the standard kinds of hardware inputs, outputs, and sensors.


TinyOS is completely non-blocking: it has a single stack. Therefore, all I/O operations that last longer than a few tens of milliseconds are asynchronous and have a callback. To enable the native compiler to better optimize across call boundaries, TinyOS uses nesC's features to link these callbacks, called events, statically. While being non-blocking enables TinyOS to maintain high concurrency with a single stack, it forces programmers to write complex logic by stitching together many small event handlers. To support larger computations, TinyOS provides tasks, which are similar to a Deferred Procedure Call and interrupt handler bottom halves. A TinyOS component can post a task, which the OS will schedule to run later. Tasks are non-preemptive and run in FIFO order. This simple concurrency model is typically sufficient for I/O centric applications, but its difficulty with CPU-heavy applications has led to several proposals for incorporating threads into the OS. Deferred procedure call (DPC) is a mechanism which allows the processor which is currently executing a critical task (i. ... An interrupt handler, also known as an interrupt service routine, is a subroutine in an operating system or device driver whose execution is triggered by the reception of an interrupt. ...


TinyOS code is statically linked with program code, and compiled into a small binary, using a custom GNU toolchain. Associated utilities are provided to complete a development platform for working with TinyOS. The GNU toolchain is a blanket term given to the programming tools produced by the GNU project. ...


History

TinyOS began as a project at UC Berkeley as part of the DARPA NEST program. It has since grown to involve thousands of academic and commercial developers and users worldwide.

  • 1999: First TinyOS platform (WeC) and OS implementations are developed at Berkeley.
  • 2000: Berkeley designs the rene platform and partners with Crossbow, Inc., who mass produces the hardware. TinyOS version 0.43 is made available to the public via SourceForge. Pre-1.0 versions of TinyOS are a mix of C and Perl scripts.
  • 2001: Berkeley develops the mica platform and releases TinyOS version 0.6.
  • February 2002: Berkeley distributes 1000 mica nodes to other participants in the NEST project.
  • April 2002: Work on the nesC programming language begins as a collaboration between Intel Research and UC Berkeley.
  • September 2002: TinyOS version 1.0, implemented in nesC, is released.
  • August 2003: TinyOS version 1.1 is released, which includes new nesC features including data race detection.
  • September 2003 - December 2005: TinyOS begins a periodic minor release process.
  • June 2004: Working group forms on next steps for TinyOS, based on experiences porting to new platforms. Group agrees to start work on 2.0.
  • July 2005: NEST project concludes.
  • December 2005: TinyOS 1.1.15, the last 1.1 version, is released.
  • February 2006: TinyOS 2.0 beta1 released at the 3rd TinyOS Technology Exchange in Stanford, CA.
  • July 2006: TinyOS 2.0 beta2 released.
  • November 2006: TinyOS 2.0 released at the SenSys conference in Boulder, CO.
  • April 2007: TinyOS 2.0.1 released at the 4th TinyOS Technology Exchange in Cambridge, MA.
  • July 2007: TinyOS 2.0.2 released. Work on TinyOS 2.1, which involves slight changes to a few interfaces, begins.

Integrated Development Environments

  • TinyOS Eclipse Plugin (ETH Zürich)
  • TinyOS Eclipse Plugin by Richard Tynan (University College Dublin)
  • TinyDT - TinyOS Plugin for the eclipse platform (Vanderbilt University)

External links

  • TinyOS Website
  • TinyOS 2.0 Documentation
  • Open Directory: Computers: Software: Operating Systems: Network: TinyOS
  • TinyOS Korea Forum Website
  • TinyOS Contrib - Contributed projects
  • www.tinyos8051wg.net - Port of TinyOS to mcs51 (8051) based architechtures and CC2430 in particular
  • XubunTOS - LiveCD with latest TinyOS installed
  • XubuntTOS VMWare - VMWare virtual machine image of XubunTOS
  • SensorNetworkMuseum - reference data for sensor network platforms
Topics in Wireless Sensor Networks
Software Hardware Conferences/Journals Standards
Operating Systems Programming Languages Middleware Simulators
TinyOS, SOS, Contiki nesC TinyDB TOSSIM,NS-2 Sun SPOT Sensys, IPSN, EWSN,SECON, INSS ZigBee, 6LowPAN

  Results from FactBites:
 
TinyOS Design Patterns (447 words)
TinyOS code (and user applications) are written in the nesC language, which is an extension of C that adds components, interfaces, and some compile-time concurrency analysis to detect possible race conditions.
TinyOS programming tends to have a steep learning curve; in addition to learning a new language, developers have to program using very fine grained events.
For example, TinyOS programming doesn't support dynamic memory allocation: the idea is that all state a program needs should be allocated statically, in order to preclude run-time corner cases from causing hard to diagnose failures.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.