What is TinyOS? An open-source OS Designed for low-power wireless devices, such as sensor networks, ubiquitous computing, personal area networks, smart buildings and smart meters
Where is it useful? For microcontroller-based devices that have sensors and/or networking capabilities For very resource-constrained devices, such as microcontrollers with a few kB of RAM and few tens of kB of code space For devices that need to be very low power
Strengths Multiple microcontroller and radio chips support Pre-existing code to start working with Over 5 years old Highly robust and efficient Has very few bugs Strong support for low-power operation, including wireless networking Secure networking support on some radio chips Extensive networking support
Weakness Two major weakness Adapting to a programming model Writing computationally-intensive applications All of TinyOS’ APIs are split-phase or non-blocking TinyOS expects no piece of code to run for a very long time Doesn’t work well with long, uninterrupted pieces of code CPU-intensive apps can cause problems Splitting long computation into small parts -> execution one by one
Users R&D labs Startup companies Embedded wireless product lines
Networking facilities Low duty cycle operation through low-power link layers Communication has higher latency Multihop, network-wide sub-millisecond time synchronization Support for three dissemination protocols Drip DIP DHV Deluge protocol for reprogramming a multihop wireless network over the air Supporting the recenet Internet standard RPL, IPv6 for (6lowpan)
Programming API