Ipsn2009-tutorial-proposal
1. Tutorial title
TinyOS: An Operating System for Sensor Network Research and Application Prototypes
Contact: Omprakash Gnawali (gnawali@usc.edu)
2. One or two-page description of tutorial that clearly states
(i) the scope of tutorial and learning objectives
In this tutorial, we will focus on the features available in TinyOS 2.x that enables us to do sensor network research and application prototypes. Here is a tentative list of topics to be covered in the tutorial:
1. TinyOS. We will describe the rationale behind the component-based architecture of TinyOS and an overview of the basic services available in TinyOS.
2. Nesc. Nesc is a programming language that is used to write TinyOS programs. We will go through the basic and advanced features of Nesc.
3. Safe TinyOS. Starting in version 2.1, TinyOS applications can be compiled in "safe mode," ensuring that memory access errors (null pointer dereferences, array bound violations, etc.) are trapped, as opposed to causing memory corruption and other harmful effects. This part of the tutorial will introduce Safe TinyOS and show how it can be used to pinpoint errors that would otherwise be difficult to find. We will also describe how new TinyOS components can be annotated to support safe compilation.
4. Threads. We will describe how this alternative concurrency model simplifies certain types of TinyOS programs.
5. Network protocols. We will describe the basic networking protocols available in TinyOS. One important development is the development of standards to allow the transport of IPv6 packets over low-power links, such as the 802.15.4 links favored by platforms running TinyOS. TinyOS now incorporates an open IPv6 stack including mesh networking along with UDP and TCP transport layers. We will give an overview of the key concepts of deploying IP-based solutions in a TinyOS network. and demonstrate how to use the new IPv6-based networking stack.
6. Hands-on session. We will present the tools involved in running TinyOS on the most common platforms (telos and micaz), the layout and the structure of the tinyos-2.x tree, how to compile and run simulations and how programming real motes takes place. The programs that will demonstrated will involve talking over the serial with the PC and radio communication.
Learning objectives:
- Understand the research problems and applications where TinyOS can be used
- Understand TinyOS architecture and a list of available services
- Understand how to customize and augment TinyOS services to meet the research and application needs
- Learn how to do simulations in TinyOS during the hands-on session
(ii) target audience and expected attendance
Use of TinyOS has the potential to facilitate the research done in the IPSN community. We expect this tutorial to be helpful to professors, students, as well as industrial practitioners to understand what is available in TinyOS and when it is applicable to their research. Even the students who program in TinyOS will benefit tremendously by learning how to use the new features available in TinyOS 2.1.
(iii) logistic requirements beyond class room style setting for presentation
The hands-on session will have two parts. The simulation tutorial will be done using virtual machines. We will provide the software to participants to install on their Windows or Linux laptops. We will provide a small number of sensor nodes for the segment of the tutorial where we show how to program on a hardware platform.
(iv) a list of previous offerings of the tutorial
We have offered a tutorial in 2005. What conf.?
TinyOS is a collaboration between many educational institutions and companies. We plan to bring several core developers of TinyOS for this tutorial so that the audience gets not only a detailed description and understanding of TinyOS but also the rational behind some of the design decisions that shaped TinyOS architecture and services.
3. Presentation slides
We are attaching presentation slides from our 2005 tutorial to give an idea. The style will be similar but the content significantly revised to describe the newest version of TinyOS.