RIOT OS

Manjunath Periyapatna
3 min readDec 29, 2017

--

RIOT:

Real time os for IOT.An operating system choice for low-power embedded devices.

It is small operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things (IoT) devices. It is open-source software, released under the GNU Lesser General Public License (LGPL).

Follows microkernal architechture.

  • A microkernel OS is structured as a tiny kernel that provides the minimal services used by a team of optional cooperating processes, which in turn provide the higher-level OS functionality. The microkernel itself lacks filesystems and many other services normally expected of an OS; those services are provided by optional processes.
  • The real goal in designing a microkernel OS is not simply to “make it small.” A microkernel OS embodies a fundamental change in the approach to delivering OS functionality.To call any kernel a “microkernel” simply because it happens to be small would miss the point entirely.

Since all the services like device drivers,memory management,communication,file management etc.. are builded in the user space and the micro kernal will give the kernal space wherein minimal set of services recide.So the microkernal architechture providing an abstraction for the hardware layer so that it can be extensible with different hardware architechtures.

Features:

Open source,hardware independent and energy effitient.

RIOT is Developer Friendly:Supports multiple languages like c and c++,different tools,develop on linux device and put on to any embedded device.

RIOT is Resource Friendly:Robust,Enery effitient etc.

RIOT is IoT Friendly:Suport different iot protocols coap,rpl,ipv6 and udp etc

Operating Systems such as Contiki, TinyOS or RIOT are designed to operate in the challenging environment of interconnected embedded devices, differing mainly in kernel architecture and the programming models that are employed for application development.

Why we chose RIOT?

  • It features a network stack based on open standards, namely 6LoWPAN and IEEE 802.15.4.
  • And since RIOT is a microkernel OS, we can specifically include only the features we need, shaving valuable bytes off of our memory footprint.
  • Contiki and tiny os are event based os and provide application development that give support a subset of the C language(contiki) and nestc(tinyos).RIOT, in contrast, offers a “traditional” threading and scheduling scheme, POSIX-compliance as well as C and (currently partial) C++ language support.This means that if you’re familiar with standard C, you won’t have to adapt to new coding paradigms to write applications for RIOT and can dive right in.
  • RIOT’s “native mode” makes it possible to run RIOT applications on a POSIX-compliant operating system such as Linux or OS X for testing and debugging.
  • It is possible to run multiple instances of RIOT applications on the same host, with communication between them enabled through virtual network devices.This enables a much faster feedback loop when developing and testing application.

Contiki follows a modular concept close to the layered approach, while Tiny OS consists of a monolithic kernel, as Linux. The scheduling in Contiki is purely event driven, similar to that in TinyOS, where a FIFO strategy is used. Linux on the other hand, uses a scheduler, which guarantees a fair distribution of processing time. The programming models in Contiki and TinyOS are based on

the event driven model, in a way that all tasks are execute within the same context, although they offer partial multi-threading support.

Comparision:

These two Contiki OS and Tiny OS, which are suitable for IoT applications. But RIOT fares better when it comes to memory usage and support.

Architecture, board and driver support
It supports various architectures like

  • MSP430
  • ARM7
  • Cortex-M0, M3 and M4
  • x86, etc

--

--