TinyOS is an open source operating system designed for wireless sensor networks. It is an event-driven OS written in the nesC programming language. Applications and libraries are built as software components that interact in an event-driven way without preemption. TinyOS uses static linking and has constraints on memory and power due to running on small embedded devices.