In the new frontier of the internet of things, RIOT is staking out ground as the open source operating system that feels like familiar territory to developers.
The RIOT IoT OS, which like most IoT operating systems got its start in the university community, dates to 2009 when a team of German researchers working on a project to monitor the vitals of firefighters during a mission ran into limitations with existing small form-factor OS technology, including Contiki and TinyOS. The research team began writing its own code, and RIOT emerged as a full microkernel architecture that provides multithreading and real-time capabilities and, most importantly, supports standard C and C++ programming languages. Their goal: creating a more accessible IoT platform for developers.
“[Before RIOT], the trend was to have handcrafted code specifically designed for the hardware and software platform, which made applications less portable and maintainable,” explained Matthias Wählisch, one of the co-developers of RIOT and assistant professor of computer science at Freie Universität Berlin. “What was missing was an easy-to-use operating system that you know from the desktop world.”
While full-fledged desktop operating systems provide the range of capabilities useful for IoT development, they couldn’t fulfill the lightweight, energy-efficiency and real-time requirements necessary for IoT applications. Existing lightweight OSes like Contiki and TinyOS hail from the sensor network arena, which is less familiar territory for developers, Wählisch claimed. At the same time, vendor-specific IoT OSes are limited by a siloed approach that favors industrial closed systems as opposed to an open ecosystem, explained Thomas Schmidt, another co-developer of the RIOT IoT OS and a computer science professor at Hamburg University of Applied Sciences.
“We believe that IoT should be as open as the internet is today,” Schmidt explained. “We want to provide the tools and operating system that can serve as the Linux of IoT.”
RIOT: The Linux of IoT
The RIOT IoT OS was designed to provide the capabilities of a modern, full-fledged operating system in a small form factor, including native multithreading, hardware abstraction and dynamic memory management. Many competing IoT OSes employ an event-driven model, which means all tasks are executed within the same context without support for multithreading, Schmidt said.
Where RIOT really shines, according to its developers, is with developer-friendly programmability, including the ability to work with standard C and C++ languages and libraries. Because there is no special programming model or language, developers can use all the same familiar desktop tools for designing IoT applications as well as leverage existing C++ code for future IoT efforts. “There’s a lot of software written in C and C++, and if you don’t support those, you can’t run the software,” said Oliver Hahm, another RIOT co-developer and an IoT developer at Inria, the French National Institute for computer science and applied mathematics.
Antonio Lignan, former lead firmware developer at Zolertia, a maker of a hardware suite for IoT, said the ability to use common developer tools is a real plus for the RIOT IoT OS. “Most developers are accustomed to using C++ for frameworks and wiring so it allows for faster reuse,” he explained. “RIOT also follows a kernel-like architecture that is more common to Linux development, so people coming from an embedded development background will find it to have an easier learning curve.”
Learn more about the RIOT IoT OS
from co-developer Oliver Hahm.
Like other open source OSes, RIOT’s large developer community is also a benefit, and RIOT also maintains a number of people on its payroll, specifically, to track and maintain the source code, Lignan said. Another upside to this platform is the work the community is doing in the area of hardware abstraction, which also promotes reuse of code across IoT platforms, he added.
The open nature of the RIOT IoT OS as well its strategy to work across hardware platforms is critical to the vision of providing a developer-friendly platform in a fast-changing market segment. “There is a sustainability aspect — if there’s something wrong with the software, you want the freedom to change it,” Hahm said. “With open source, there’s always the ability to update the software or replace it with something else.”