Towards an OS for the Internet of Things -

Towards an OS for the Internet of Things

The Internet of Things (IoT) is characterized by heterogeneous devices. They range from very lightweight sensors powered by 8-bit microcontrollers (MCUs) to devices equippedwith more powerful, but energy-efficient 32-bit processors.

However, neither a traditional operating system (OS) currently running on Internet hosts, nor a typical OS for sensor networks are capable of fullfilling the diverse requirements of such a wide range of devices. To leverage the IoT, redundant development should be avoided and maintenance costs should be reduced.

In this paper we revisit the requirements for an OS in the IoT. We introduce RIOT OS, a real time capable OS that explicitly considers devices with minimal resources but eases development across a wide range of devices.

Available open source RIOT code  requires less than 5 kByte of ROM andless than 1.5 kByte of RAM for a basic application on MSP430. It uses a multi-threaded programming model in combination with standard ANSI C code and a common POSIX-like API for all supported hardware –from 16-bit microcontrollers to 32-bit processors.

Hence, for projects involving heterogeneous IoT hardware, it is possible to build the whole software system upon RIOT and easily adopt existing libraries. Moreover, the availability of several networking protocols including the latest standards of the IETF for connecting constrained systems to the Internet (6LoWPAN, RPL) make RIOT IoT-ready. On-going work includes full POSIX compliance and porting to various IoT platforms.

To read this external content in full, download the complete paper from the author online archives.

2 thoughts on “Towards an OS for the Internet of Things

  1. “I looked at RIOT when you first posted it. The sad thing about this code is that it has no function headers and no comments. I think it is totally unsupportable.”

    Log in to Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.