Small Open-Source OSs for Small IoT Devices

Small Open-Source OSs for Small IoT Devices

Dec. 27, 2017
A range of open-source operating-system solutions are available for those confined to scaled-down dimensions—homing in on the best option does require some research, though.

This article is part of TechXchange: RTOS: Zephyr Project

Linux has become the de facto open-source operating system (OS), although there are niche alternatives like flavors of BSD (Berkeley Software Distribution). A variety of incarnations target minimal memory platforms such as Ubuntu Core/Snappy and Android Things.

Many commercial open-source solutions are available in this space, too, but they all require virtual memory-management-unit (MMU) hardware. Though such hardware can be found in a host of Internet of Thing (IoT) devices, many utilize microcontrollers that lack this support. These smaller devices require a more compact OS that utilizes a few kilobytes of RAM and around a dozen kilobytes of flash storage.

These days, most compact commercial real-time operating systems (RTOS) support IoT, either providing or partnering with cloud services to provide the internet component. There’s also a large group of open-source solutions available in this space. However, their support can vary, unlike the commercial alternatives that typically offer long-term support. All include networking protocol stacks, topped by IoT protocol support.

For example, a number of projects can be found on software repositories like Github including RIOT, TinyOS, and Mantis OS. Nano RK specifically targets the FireFly Sensor Networking Platform that includes the MicaZ motes.

Company Backing

Many others have a company that sponsors or supports the projects. Some are a mixed open-source/closed-source solution like Arm’s Mbed, which has proprietary components. Dual licensed solutions like Silicon LabsMicrium µC/OS are open source as well, but they require a commercial license to use the operating system in a product.

Other open-source solutions that have a company or organization behind them include Amazon FreeRTOS, Zephyr OS, Apache Mynewt, Thingsquare Contiki, and Huawei LiteOS. This means that the operating systems will have ongoing development. However, the amount of support that can be obtained will likely vary significantly. Some companies can provide support for these platforms, such as Intel’s Wind River Professional Services for Zephyr OS. The OS was originally based on Wind River’s RocketOS.

Most of these open-source platforms utilize more liberal BSD, MIT, or Apache licenses. These don’t require publishing source code, but they must include copyright notices within the source code utilized by the applications.

Targeting applications that require certifications like ISO 26262, IEC 61508, ISO 62304, SIL3/SIL4 IEC or even DO-178B can be problematic for some of these platforms. This is why a commercial RTOS is often the platform of choice, either that or an open-source platform where developers can get paid support. Such support would include long maintenance of software, bug fixes, and a place to turn to when problems arise.

Some companies opt for specific platforms in these scenarios. FreeRTOS-compatible alternatives from Wittenstein—SafeRTOS and OpenRTOS—were rebuilt from the same code base for compatability. SafeRTOS has been rewritten and meets the requirements of the IEC 61508 safety standard. OpenRTOS shares the FreeRTOS kernel code. Both have commercial licenses and come with a warranty.

Developers looking for an OS solution may also want to look at languages with built-in operating-system support. Programming languages like Java, Ada, and SPARK have multitasking and memory management built-in. They can usually take advantage of an operating system to provide these services, or developers can use runtimes that include this support.

The success of Linux is likely to be replicated with more compact, IoT-oriented OS solutions that have corporate sponsorship, such as Zephyr OS, FreeRTOS, Contiki, and LiteOS. They’re also a more likely choice for IoT cloud service providers. Supporting a wide range of platforms might be desirable for these providers, but that tends to be impractical. Targeting one or two is often more than sufficient to create a sustainable development community.

IoT developers should also keep security in mind. There are many facets to this issue, from secure communication using TLS protocol stacks to the initial boot process. Solutions like the Trusted Computing Group’s Device Identifier Composition Engine (DICE) offer one way to start with a secure base. DICE can be independent of the OS, but it makes more sense if that support is integrated and exposed to the applications running on the OS.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!