InitRech 2015/2016, sujet 25

De Wiki d'activités IMA

Summary

Riot OS is an OS for the Internet of Things (IoT). We can define the IoT like the network of all the physical devices (including phones, vehicles, sensors, etc.). There should be 50 billion devices in the IoT by 2020. The devices in the IoT can have very few resources, so Riot OS wants to be available for a maximum of devices and exploiting all the resources. An OS for IoT also needs to fulfil the requirements of cyber-physical systems, reliability, real-time behaviour and adaptive communication stack.

One of the main concern about the IoT is to have an OS that can run on all the available devices. Furthermore, there is a tradeoff between being developer-friendly (like Linux) and energy-efficient (like TinyOS and Contiki).

RiotOS is based on 3 key design aspects:

  • The kernel has a microkernel architecture inherited from FireKernel, for the multi-threading with standard API.
  • He has C support and Riot adds a C++ support and a TCP/IP networks stack, making a developer-friendly OS with high reliability. Furthermore, Riot is able to create as many threads are needed by the developers. The number of threads is only limited by the available memory and stack size for each thread.
  • The scheduler uses a fixed-sized circular linked list of threads.The MCUs provide multiple compare registers, providing a way to have a constant runtime of the timer operations. The scheduler works without any periodic events for energy-efficiency.

These aspects of Riot OS gives him an efficient scheduling and a low memory footprint. He is open source, useful for the community and developing plugins and applications for free. He requires less than 5kB of ROM and 1.5 kB of RAM, can run on devices with 16-bit microcontrollers to 32-bit processors.

Main Contribution

The main contribution of this article is to summarise the differences between the differents OS for the IoT and see that Riot OS keep the best of each. The table explains what are the pros and cons of each OS and which architecture or functionality give them these strengths or weaknesses.

This article explains the needs for an OS specific to the devices of the IoT and wants to show the dominance of Riot OS on the IoT OS market. All the aspects of this OS are better than the others.

The article also explains the architecture and design aspects of the OS, and why it makes it better.

Applications

The explanation of the OS allows users and developers to understand the OS and how to use it in the best circumstances. He is open source so everyone can contribute and do his fork, under the GNU license for all the community. The main concern about OS for the IoT is to make it compatible with a maximum of devices. An open source software is more likely to be available for a wide choice of hardware as the community is big. Riot OS looks like compatible with a large variety of devices because his requirements are very low.

The applications of an IoT OS are infinite because there is a very large choice of devices which can run it. You can connect many objects in your house like your fridge, your heating, or the alarm clock and configure it to do specific task by the network. The interaction between objects and humans are still very manual and with the IoT, we will can soon make our coffee from our smartphone without touching the machine. Riot OS wants to develop this technology by providing the right tool to use it.