Powerful RTOSs for the IoTAugust 11, 2015 by Jennifer A. Diffley
Everyone from Windows to Google is scrambling to create their own operating system for the IoT storm. Here's an overview of the major players in the new RTOS world.
While there's no end of focus on the hardware components of IoT, the software behind it is undergoing just as many innovations and reveals. Top companies have developed their own RTOSs and are attempting to edge each other out of the running, while startups and open-source teams are attempting to gain just as many followers. Here's a look at some of the operating systems competing for their piece of the IoT pie:
Reviews of Windows 10 have been mixed, as are most things Windows-related. The Windows IoT software is designed for Raspberry Pi and Arduinos and is made specifically for builders, which is proof of the software giant's acknowledgement that makers and hobbyists have a profound impact on technology. Support comes for UWP languages as well as debugging, project systems, and support for Node.js and Python, and it's compatible with Visual Studio. The catch is that, of course, developers have to have Windows 10 installed on their PC. It seems Windows is trying to make up for its abysmal failure in the mobile department with an attempt at becoming relevant to the IoT.
A robot kit developed with Windows IoT Core.
The slimmer version of Android is designed to run on minimal system requirements and will operate on a cross-platform language called "Weave" that promises to "drive interoperability and quality through a certification program that device makers must adhere to." The difference between Brillo and Windows IoT Core seems to come down to security and robustness--Brillo seems to be focusing mostly on smart home applications that don't require as much memory as other devices, while Windows has many more applications and tighter security (supposedly), though Brillo will be able to talk with all other Android devices.
Don't let the lackluster website fool you: FreeRTOS is a powerful, widely-used RTOS that was downloaded over 100,00 times in 2014, giving it a more established foundation than the new Brillo or Windows IoT Core. It's free, reliable, and simple to use. It has a tiny footprint and support for over 30 embedded system architectures. The FreeRTOS is also a valuable resource; if you can't find the answer to your IoT question there, there likely isn't one. Another compelling aspect of FreeRTOS is its foundation: it's been around since 2003, which means it's not new to the embedded game, unlike Brillo, and it's been dedicated to embedded development since the very beginning, unlike Windows. Its development was contributed to by major players like Freescale, NXP, and Microsemi. While perhaps not as widely marketed as Brillo or Windows IoT Core, FreeRTOS packs its own punch that simply can't be beat for the price.
A quadcopter built with FreeRTOS.
Billing itself as a "friendly" OS, Riot has been around since 2008, where it it started out as a sensor platform for keeping track of firefighters. Riot will run on PCs and embedded platforms and works with most dev boards. Riot is free and features a microkernel, cryptographic libraries, data structures, different network stacks, and support for various microcontrollers, sensors, and platforms. Riot has a simliar feel to FreeRTOS, but perhaps not quite a following or backing, as it hasn't been around as long. Still, it supports multiple drivers, and is easy to use and get started. One thing lacking is support, like FreeRTOS's forum. Riot keeps in touch with its developers with a mailing list, which is not a collaborative effort. But for those looking for a no-cost, easy-to-use RTOS with great compatibility, Riot is a solid bet.
Riot operating in a smart watch.
An open source OS for IoT, Contiki is comprised of code contributions from individuals and organizations from all over the world. Adam Dunkels wrote the basis of Contiki and its core functions in 2001, and in 2003 it enabled embedded systems to connect to the Internet and to each other. It does not, however, provide support for C++, and only partial support for C. It requires about 10 kilobytes of RAM and 30 kilobytes of ROM, but the full system requires about 30kilobytes of RAM. Contiki is especially useful in low-power systems, as it has a set of mechanisms that can be used to reduce power consumption. Contiki also claims to have the world's smallest web browser.
There are dozens more RTOSs out there, and even more will be introduced in years to come, but these five power players are sure ways to get you started with your projects and offer solutions to IoT dilemmas as well as provoke inspiration for any builder.