Memory safety and untrusted extensions for TinyOS

Update Item Information
Publication Type technical report
School or College College of Engineering
Department Computing, School of
Program Advanced Research Projects Agency
Creator Regehr, John; Eide, Eric Norman
Other Author Cooprider, Nathan; Archer, Will
Title Memory safety and untrusted extensions for TinyOS
Date 2006-06-30
Description Sensor network applications should be reliable. However, TinyOS, the dominant sensor net OS, lacks basic building blocks for reliable software systems: memory protection, isolation, and safe termination. These features are typically found in general-purpose operating systems but are believed to be too expensive for tiny embedded systems with a few kilobytes of RAM. We dispel this notion and show that CCured, a safe dialect of C, can be leveraged to provide memory safety for largely unmodified TinyOS applications. We build upon safety to implement two very different environments for TinyOS applications. The first, Safe TinyOS, provides a minimal kernel for safely executing trusted applications. Safe execution traps and identifies bugs that would otherwise have silently corrupted RAM. The second environment, UTOS, implements a user-kernel boundary that supports isolation and safe termination of untrusted code. Existing TinyOS components can often be ported to UTOS with little effort. To create our environments, we substantially augmented the CCured toolchain to emit code that is safe under interrupt-driven concurrency, to reduce storage requirements by compressing error messages, to refactor direct hardware access into calls to trusted helper functions, and to make safe programs more efficient using whole-program optimization. A surprising result of our work is that a safe, optimized TinyOS program can be faster than the original unsafe, unoptimized application.
Type Text
Publisher University of Utah
Subject TinyOS
Subject LCSH Sensor networks
Language eng
Bibliographic Citation Regehr, John; Cooprider, Nathan; Archer, Will; Eide, Eric Norman (2006). Memory safety and untrusted extensions for TinyOS. UUCS-06-007.
Series University of Utah Computer Science Technical Report
Relation is Part of ARPANET
Rights Management ©University of Utah
Format Medium application/pdf
Format Extent 265,284 bytes
Source University of Utah School of Computing
ARK ark:/87278/s65b0krd
Setname ir_uspace
ID 703657
Reference URL https://collections.lib.utah.edu/ark:/87278/s65b0krd
Back to Search Results