Flux Research Group / School of Computing

Efficient Memory Safety for TinyOS

No PDF availalbe

Nathan Cooprider, Will Archer, Eric Eide, David Gay, and John Regehr

Proceedings of the 5th ACM Conference on Embedded Networked Sensor Systems (SenSys) 2007.

DOI: 10.1145/1322263.1322283

Operating Systems, Languages, Mobile Networking


Reliable sensor network software is difficult to create: applications are concurrent and distributed, hardware-based memory protection is unavailable, and severe resource constraints necessitate the use of unsafe, low-level languages. Our work improves this situation by providing efficient memory and type safety for TinyOS 2 applications running on the Mica2, MicaZ, and TelosB platforms. Safe execution ensures that array and pointer errors are caught before they can corrupt RAM. Our contributions include showing that aggressive optimizations can make safe execution practical in terms of resource usage; developing a technique for efficiently enforcing safety under interrupt-driven concurrency; extending the nesC language and compiler to support safety annotations; finding previously unknown bugs in TinyOS; and, finally, showing that safety can be exploited to increase the availability of sensor networks applications even when memory errors are left unfixed.