
In the past decade, most new open source operating systems have shifted from the mobile market to the Internet of Things (IoT) market. This article introduces many new open source operating systems designed for IoT. Our previous article covered open source IoT frameworks, as well as Linux and open hardware development aimed at IoT and consumer smart home devices.
In addition to introducing new embedded Linux distributions for IoT, I will also discuss several older lightweight distributions like OpenWrt that have found new life in this field. While Linux distributions primarily target gateways and hubs, non-Linux open source operating systems for IoT have also seen rapid development, capable of running on microcontroller units (MCUs) and typically focused on IoT edge devices.
One thing to keep in mind: almost all operating systems today claim to have some IoT connectivity features, so this list is somewhat arbitrary. Most of the open source operating systems discussed in this article possess the following attributes: low memory footprint, high power efficiency, modular configurable communication stacks, and strong support for specific wireless and sensor technologies. Some projects focus on IoT security, while many non-Linux operating projects emphasize real-time determinism, which is sometimes a requirement in industrial IoT.
I typically steer clear of Linux distributions that are categorized as “lightweight” but are still primarily aimed at desktop use or portable USB implementations rather than devices without peripherals. However, lightweight Linux distributions like LXLE or Linux Lite may be suitable options for IoT. The choice on the non-Linux open platform side is more challenging. After all, most lightweight real-time operating systems are available for IoT. I focus on the major platforms or those that seem to hold the most promise for IoT. Other potential candidates can be found on this open source real-time operating system website (http://www.osrtos.com). This article does not mention Windows 10 for IoT Core, which is free for makers and supports AllJoyn and IoTivity but is not fully open source. Many commercial real-time operating systems are major players in the IoT field, such as Micrium’s µC/OS.
2. Huawei LiteOS – Do not confuse Huawei’s LiteOS with open source Unix variants; it is said to be based on Linux, but it is indeed a very streamlined implementation. Announced over a year ago, LiteOS claims to deploy as a kernel of only 10KB in size. LiteOS has a wide range of applications, from MCU-based devices to Android-compatible application processing systems, among others. This customizable operating system boasts many features, such as zero configuration, automatic discovery, automatic networking, fast startup, and real-time operation, providing extensive wireless support, including LTE and mesh networks. LiteOS is delivered with Huawei’s agile IoT solution, powering Narrowband IoT (NB-IoT) solutions.
3. OpenWrt/LEDE/Linino/DD-Wrt – Due to the IoT boom, the renowned network-focused OpenWrt embedded Linux has made a comeback. The lightweight OpenWrt often appears on routers and MIPS-based WiFi boards. Early derivatives (like DD-Wrt and Arduino-based Linino) have recently seen branch versions emerge. The Linux Embedded Development Environment (LEDE) project promises more transparent governance and a more stable release cycle.
4. Ostro Linux – In August of this year, Intel chose this Yocto Project-based distribution for the Intel Joule module (running on the latest quad-core Atom T5700 system-on-chip), making it famous. Ostro Linux complies with IoTivity, supports numerous wireless technologies, and provides a sensor framework. It places a strong emphasis on IoT security, offering protection at the operating system, device, application, and data levels, including encryption and MAC. This distribution is available in both peripheral-less and media (XT) versions.
5. Raspbian – There are several other distributions aimed at Raspberry Pi that are more specifically designed for IoT, but the rapidly maturing Raspbian remains a standout. As the most popular distribution for DIY projects on the widest-used IoT platform, developers can seek help from numerous projects and tutorials. Since Raspbian supports Node-JS visualization design tools like Node-RED, we find little reason to choose specialized IoT-focused Thingbox for RPi.
6. Snappy Ubuntu Core – This embedded version of Ubuntu Core, also known as Ubuntu Core with Snaps, utilizes the Snap package mechanism – Canonical has split it off as a universal Linux package format, allowing a single binary package to run on “any Linux desktop, server, cloud, or device.” Snaps enable Snappy Ubuntu Core to provide transaction rollback, secure updates, cloud support, and application store platforms. Snappy requires only a 600MHz processor and 128MB of memory, but it also needs 4GB of flash storage. It can run on Pi and other embedded boards, appearing in numerous devices, including the Erle-Copter drone, Dell Edge gateway, Nextcloud Box, and LimeSDR.
7. Tizen – This embedded Linux stack hosted by the Linux Foundation is primarily supported by Samsung, and it has garnered little attention in the mobile market. It is widely used in Samsung’s TVs and smartwatches, including the new Gear S3, and is sporadically implemented in Samsung’s cameras and consumer devices. Tizen can even run on Raspberry Pi. Samsung has begun integrating Tizen with its SmartThings smart home system to enable control of SmartThings through Samsung TVs. We can also expect it to strengthen integration with Samsung’s Artik modules and Artik Cloud. Artik comes with Fedora, but Tizen 3.0 has recently been ported along with Ubuntu Core.
8. uClinux – The renowned lightweight uClinux is the only Linux that can run on MCUs, operating on specific models like Cortex-M3, M4, and M7. uClinux requires an MCU with a built-in memory controller and can use external DRAM chips to meet memory requirements. uClinux has now been merged into the mainline Linux kernel, benefiting from Linux’s extensive wireless support. However, newer MCU-oriented operating systems like Mbed are quickly filling the wireless gap and are easier to configure. EmCraft is one of the biggest supporters of uClinux on MCUs, providing numerous Cortex-M-based modules.
9. Yocto Project – The Yocto Project from the Linux Foundation is not a Linux distribution but an open collaboration project that provides developers with modules, tools, and methods to build custom embedded stacks. Since you can customize stacks with minimal overhead, it is often used for IoT. The Yocto Project forms the basis of most commercial embedded Linux distributions and is part of projects like Ostro Linux and Qt for Device Creation. Qt is preparing a Qt Lite technology for Qt 5.8, which will optimize Device Creation for smaller IoT target devices.
Nine Non-Linux Open Source IoT Operating Systems
2. ARM Mbed – ARM’s IoT operating system targets small, battery-powered IoT endpoints that run on Cortex-M MCUs, which may have only 8KB of memory and have appeared on BBC Micro:bit SBCs. While initially semi-proprietary, single-threaded, and lacking determinism, it is now open-source under the Apache 2.0 license, offering multi-threading and real-time operating system support. Unlike many lightweight real-time operating systems, Mbed was designed with wireless communication in mind, and it has recently added thread support. This operating system supports cloud services that can securely extract data via the Mbed Device Connector. Earlier this year, the project released a reference design for wearable devices.
3. Contiki – Open-source Contiki, which requires only 10KB of memory and 30KB of flash storage, cannot be as small as Tiny OS or RIOT OS, nor can it offer real-time determinism like RIOT and some other operating systems. However, the widely used Contiki provides extensive wireless network support, with an IPv6 stack contributed by Cisco. This operating system offers a wide range of development tools, including dynamic modules that can be loaded into the Cooja Network Simulator for debugging wireless networks. Contiki claims to allocate memory efficiently.
4. FreeRTOS – FreeRTOS is quickly becoming competitive with Linux in embedded development platforms, particularly for developing IoT endpoint devices. FreeRTOS lacks Linux features such as device drivers, user accounts, and advanced networking and memory management. However, it uses far fewer resources than Linux and is even less resource-intensive compared to mainstream real-time operating systems like VxWorks, offering an open-source GPL license. FreeRTOS can run on devices with less than 0.5KB of memory and ROM between 5-10KB, but it is more commonly used in conjunction with TCP/IP architecture, typically requiring around 24KB of memory and 60KB of flash storage.
5. Fuchsia – Google’s latest open-source operating system partially revealed in August leaves more questions than answers. Fuchsia has no relation to Linux but is based on a distribution designed to be compatible with MCU-oriented operating systems (like FreeRTOS), leading many to speculate that it is an IoT operating system. However, Fuchsia also supports mobile devices and laptops, so Google has high ambitions for this early-stage project.
6. NuttX – The non-restrictive, BSD-licensed NuttX is best known for being the most common real-time operating system for open-source drones, running on both the APM/ArduPilot and PX4 UAV platforms, which are part of the Dronecode platform. NuttX is also widely used in other resource-constrained embedded systems. Although it supports x86, Cortex-A5, and -A8 platforms, this POSIX and ANSI-based operating system primarily targets Cortex-M MCUs. NuttX is fully preemptive, with fixed priority, polling, and sporadic scheduling. This operating system claims to be a “small, general-purpose Linux operating system but significantly streamlined in functionality.”
7. RIOT OS – With eight years of history, RIOT OS is known for its efficient power usage and extensive wireless support. The hardware requirements for RIOT OS are 1.5KB of memory and 5KB of flash storage, which are nearly as low as Tiny OS. However, it also offers many features, such as multi-threading, dynamic memory management, hardware abstraction, partial POSIX compatibility, and C++ support, which are more common in Linux than in lightweight real-time operating systems. Other features include low interrupt latency (around 40 clock cycles) and priority-based scheduling. You can develop under Linux or OS X using the native port and deploy to embedded devices.
8. TinyOS – This mature open-source operating system, licensed under BSD, is very small and supports low-power MCU target devices that can have “only a few KB of memory and tens of KB of code space.” Event-driven TinyOS is written in nesC, a variant of the C language, and is often used by researchers studying low-power wireless networks (including multi-hop networks). The project team itself admits, “computationally intensive applications may be difficult to write.” The project aims to provide support for Cortex-M3, but it is still primarily designed for low-end MCUs and radio chips.
9. Zephyr – This lightweight, secure Zephyr RTOS from the Linux Foundation can run on devices with only 2-8KB of memory. Zephyr is capable of running on x86, ARM, and ARC systems, primarily focusing on MCU-based devices using Bluetooth/BLE and 802.15.4 radios (like 6LoWPAN). Zephyr is based on Wind River’s Rocket OS, which in turn is based on Viper, a streamlined version of VxWorks. The initial target devices included Arduino Due and Intel’s Arduino 101 among others. Zephyr has recently appeared in SeeedStudio’s 96Boards IoT Edition BLE Carbon SBC, supported by a new Linaro LITE working group.


