Experiences from a Decade of TinyOS Development
Published in Proceedings of the 10th Symposium on Operating System Design and Implementation (OSDI), October 2012.
When first written in 2000, TinyOS's users were a handful of academic computer science researchers. A decade later, TinyOS averages 25,000 downloads a year, is in many commercial products, and remains a platform used for a great deal of sensor network, low-power systems, and wireless research. We focus on how technical and social decisions influenced this success, sometimes in surprising ways. As TinyOS matured, it evolved language extensions to help experts write efficient, robust systems. These extensions revealed insights and novel programming abstractions for embedded software. Using these abstractions, experts could build increasingly complex systems more easily than with other operating systems, making TinyOS the dominant choice. This success, however, came at a long-term cost. System design decisions that seem good at first can have unforeseen and undesirable implications that play out over the span of years. Today, TinyOS is a stable, self-contained ecosystem that is discouraging to new users. Other systems, such as Arduino and Contiki, by remaining more accessible, have emerged as better solutions for simpler embedded sensing applications.
Talk (7MB), Paper (283KB)
BibTeX entry
@inproceedings{osdi12levis, author = "Philip Levis", title = "{Experiences from a Decade of TinyOS Development}", booktitle = "{Proceedings of the 10th Symposium on Operating System Design and Implementation (OSDI)}", year = {2012}, month = {October} }