TinyOS is an embedded, component-based operating system and platform for low-power wireless devices, such as those used in wireless sensor networks (WSNs), smartdust, ubiquitous computing, personal area networks, building automation, and smart meters. It is written in the programming language nesC, as a set of cooperating tasks and processes. It began as a collaboration between the University of California, Berkeley, Intel Research, and Crossbow Technology, was released as free and open-source software under a BSD license, and has since grown into an international consortium, the TinyOS Alliance.
TinyOS is written in nesC, a dialect of C.
nesC (pronounced “NES-see”) is an extension to the C programming language designed to embody the structuring concepts and execution model of TinyOS. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources (e.g., 8K bytes of program memory, 512 bytes of RAM).
Advantages of TinyOS
- Small size – The source code of TinyOS is very small. The code is optimized to run for any specific device. Due to smaller code devices run fast and OS does not tend to overload the device.
- Event-driven – Event-driven OS that means it depends upon the events it receives from the surrounding environment. For example, controlling the temperature, humidity and air quality of the building. An event is fired when the temperature goes above or below a certain degree and operating system controls the air condition devices to make temperature at a normal level.
- Modularity – TinyOS has different modules in it. Each module performs its own function. The modules include tasks, commands, events, microcontroller, hardware, and software. Each of these modules communicates with other to make the wireless devices work properly.
- Needed Low memory – TinyOS is a type of embedded OS which is implemented on every device. Needs low memory to run. We don’t need to buy higher memory devices to run this operating system.
- Use low voltages – Due to low memory and space usage tinyOS use low battery. TinyOS can run on smaller devices also which have low voltage.
- Reusability – TinyOS can be reusable on similar devices. That means the code has not to be changed if devices are of same nature.
Disadvantages of TinyOS
- Adjustments needed – There need some adjustments to make communication between hardware and software. This is because of low voltage restriction.
- Difficult to program – It is difficult to make a program for this os due to some restriction like asynchronous behavior, memory limit, and low voltage. NesC programming language is the major disadvantage of this OS. It is difficult for programmers to write efficient code in NesC.
- Asynchronous nature – As network sensor devices have to update its data from surrounding in every second, so programmers have to keep this in mind to make the code work in any case. Sometimes there is a communication problem between tasks in tinyOS.