Understanding IoT Open Source Operating Systems

Understanding IoT Open Source Operating Systems

This article is suitable for: Emerging technologies, industrial fields, and entrepreneurs. Reading time is about 5 minutes.

What is the use:This article helps you understand IoT open source operating systems.

The Internet of Things, open source, and operating systems are currently hot topics in the IT industry, and these three terms constitute the IoT open source operating system. So, how much do you know about IoT open source operating systems? Today, we will take you closer to IoT operating systems and introduce 10 classic IoT operating systems.

The Internet of Things, abbreviated as IoT, simply means “connecting everything.” In the IoT, “things” can be various devices, such as implants that monitor heart function, biochips that monitor farm animals, cars with built-in sensors, DNA analysis devices that monitor food environments, and on-site operational devices used for firefighting and search and rescue, etc.

What is an operating system?

Understanding IoT Open Source Operating Systems

An operating system, abbreviated as OS, is a type of system software that sits between computer hardware and applications, managing hardware and software resources and providing related services to computer programs. All computer programs, including applications or firmware, require support from an operating system.

Generally speaking, operating systems typically have the following functions: process management, interrupts, memory management, file systems, device drivers, networking, security, and input/output systems.

Typical operating systems include Windows operating system (Microsoft), Unix and Unix-like operating systems (Linux, Google), and Mac operating systems (Apple).

The Windows operating system is a graphical operating system designed on the basis of MS-DOS, which is a closed-source system, meaning the source code is not open.

Unix and Unix-like operating systems, such as FreeBSD, OpenBSD, Solaris, Minix, Linux, QNX, and Google’s Android operating system (based on Linux), Ubuntu, are all open-source systems, meaning their source code is open.

Additionally, Apple’s Mac OS X and iOS mobile device operating systems are developed based on Darwin, which is a Unix-like operating system. Apple’s operating systems (Mac OS X and iOS) are closed-source, but Apple made Darwin open-source in 2000.

What is an open-source operating system?

An open-source operating system refers to operating system software whose source code is publicly available, used, compiled, and redistributed under an open-source license. Under the premise of complying with relevant open-source protocols, anyone can use it for free and control the operation of the software in any way. The biggest feature of open-source operating systems is the open source code and the freedom to customize. Here are some advantages of open-source operating systems:

Customizable: Users can customize according to their needs, depending on different hardware platforms and application scenarios.

Easy to understand: The source code of open-source operating systems is public, making it easier for developers to view and understand the code and acquire relevant knowledge.

Open and transparent: Vulnerabilities and defects in the operating system are more easily exposed, and the development and maintenance of the code are also public.

Low cost: No commercial copyright fees, saving related development management and labor costs.

Sustainable: Even if the previously developed company cannot support it for various reasons, the system can still be maintained continuously thanks to the participation of a large number of developers in the open-source community.

Pooling wisdom: Because open-source operating systems are public, more developers can participate in development, concentrating more wisdom and ideas.

Why does IoT need open-source operating systems?

Understanding IoT Open Source Operating Systems

For the development of the Internet of Things, “fragmentation” is the main problem, where chips, sensors, communication protocols, and application scenarios vary widely. For example, there are many wireless communication standards, such as Bluetooth, Wi-Fi, ZigBee, PLC, Z-Wave, RF, Thread, NFC, UWB, LiFi, NB-IoT, LoRa, and so on. It is clear that the lack of unified technical solutions and inconsistent architectures hinder the development of the Internet of Things and limit the scope of interconnectivity.

However, various operating systems can support different hardware, communication standards, and application scenarios. Open-source helps break technical barriers and obstacles, improve interoperability and portability, reduce development costs, and also allows developers in the open-source community to participate.

The operating system is a crucial link in the Internet of Things, and open-source better promotes the openness and development of the Internet of Things. Currently, the application of open-source operating systems in the Internet of Things is already very widespread and will surely play an increasingly important role in the future.

Top 10 IoT Open Source Operating Systems

9 Linux-based Open Source IoT Distributions

1. Brillo – After Google released Brillo, this lightweight distribution based on Android has increasingly been favored by embedded boards, such as Intel Edison and Dragonboard 410c, and even some module-based computers. Brillo’s future is closely related to Google’s Weave communication protocol, which it requires. Weave brings discovery, configuration, and verification features to Brillo, which can run on devices with only 32MB of memory and 128MB of flash storage.

2. Huawei LiteOS – Don’t confuse Huawei’s LiteOS with open-source Unix variants. It is said to be based on Linux but is indeed a very streamlined implementation. Announced more than a year ago, LiteOS claims to be deployable as a kernel of only 10KB in size. LiteOS is widely used, from MCU-based devices to Android-compatible application processing systems. This customizable operating system has many features, such as zero configuration, automatic discovery, automatic networking, fast boot, and real-time operation, providing extensive wireless support, including LTE and mesh networks. LiteOS is delivered with Huawei’s agile IoT solution, driving narrowband IoT (NB-IoT) solutions.

3. OpenWrt/LEDE/Linino/DD-Wrt – Due to the IoT boom, the well-known, network-focused OpenWrt embedded Linux is making a comeback. The lightweight OpenWrt frequently appears on routers and MIPS-based WiFi boards. Early derivatives (such as DD-Wrt and Arduino-focused Linino) have recently seen branching versions. The Linux embedded development environment (LEDE) project promises more transparent governance and more stable release cycles.

4. Ostro Linux – In August this year, Intel chose this Yocto Project-based distribution for the Intel Joule module (running on the latest quad-core Atom T5700 chip system), which made Ostro Linux famous. Ostro Linux complies with IoTivity, supports a variety of wireless technologies, and provides a sensor framework. It pays great attention to IoT security, providing protection at the levels of operating systems, devices, applications, and data, including encryption and MAC. The distribution is included in both peripheral-less versions and media (XT) versions.

5. Raspbian – There are other distributions aimed at Raspberry Pi that are more specifically targeted at IoT, but the rapidly maturing Raspbian remains the leader. Since it is the most popular distribution for DIY projects on the most widely used IoT platform, developers can seek help from numerous projects and tutorials. As Raspbian supports Node-RED, a visual design tool for Node-JS, we find no compelling reason to choose Thingbox, which is specifically targeted at RPi and IoT.

6. Snappy Ubuntu Core – This embedded version of Ubuntu Core is also known as Ubuntu Core with Snaps, which utilizes the Snap package mechanism – Canonical has split it as a universal Linux software package format, allowing a single binary software package to run on “any Linux desktop, server, cloud, or device.” Snaps allow Snappy Ubuntu Core to provide transactional rollback, secure updates, cloud support, and application store platforms. Snappy requires only a 600MHz processor and 128MB of memory, but also needs 4GB of flash storage. It can run on Pi and other embedded boards, appearing in many devices, including Erle-Copter drones, Dell Edge gateways, Nextcloud Box, and LimeSDR.

7. Tizen – This embedded Linux stack hosted by the Linux Foundation is mainly supported by Samsung, which has received little attention in the mobile market. It is widely used in Samsung televisions and smartwatches, including the new Gear S3, and is also sporadically implemented in Samsung cameras and consumer devices. Tizen can even run on Raspberry Pi. Samsung has begun integrating Tizen with its SmartThings smart home system to control 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 well-known lightweight uClinux is the only Linux that can run on MCU, capable of running on specific models like Cortex-M3, M4, and M7. uClinux requires an MCU built-in memory controller and can use external DRAM chips to meet memory requirements. uClinux has now been incorporated into the mainline Linux kernel, benefiting from the extensive wireless support in Linux. 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-source collaborative project that provides developers with modules, tools, and methods to build custom embedded stacks. Since you can customize the stack with minimal overhead, it is often used in IoT. The Yocto Project forms the basis of most commercial embedded Linux distributions and is also 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.

9 Non-Linux Open Source IoT Operating Systems

1. Apache Mynewt – Open-source, wireless-supporting Apache Mynewt is aimed at 32-bit MCUs, developed by Runtime and hosted by the Apache Software Foundation. The modular Apache Mynewt has wireless support, configurable concurrency, debugging features, and fine-grained power control. In May, Runtime and Arduino Srl announced they would provide Apache Mynewt for Arduino Srl’s Primo and STAR Otoo SBC. This operating system also supports Arduino LLC boards like Arduino Zero. (Recently, Arduino Srl and Arduino LLC reached a litigation settlement and announced plans to collaborate again under Arduino Holdings and the Arduino Foundation).

2. ARM Mbed – ARM’s IoT operating system targets small, battery-powered IoT endpoints running on Cortex-M MCUs, which may have only 8KB of memory and have appeared on the BBC Micro:bit SBC. Although initially semi-proprietary, single-threaded, and lacking determinism, it is now open-source under the Apache 2.0 license, providing 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 through the Mbed Device Connector. Earlier this year, the project released a reference design for wearable devices.

3. Contiki – Due to its requirement of only 10KB of memory and 30KB of flash storage, the open-source Contiki cannot be as small as Tiny OS or RIOT OS, nor can it provide real-time determinism like RIOT and some other operating systems. However, the widely used Contiki offers extensive wireless network support, with an IPv6 stack contributed by Cisco. This operating system provides 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 can quickly rival Linux in embedded development platforms, especially for developing IoT terminal 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, not to mention compared to mainstream real-time operating systems like VxWorks, and it also offers an open-source GPL license. FreeRTOS can run on devices with less than 0.5KB of memory and ROM of 5-10KB, but it is often used in conjunction with TCP/IP architecture, typically on devices with 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 an LK distribution designed to be compatible with MCU-oriented operating systems (like FreeRTOS), leading many to speculate it is an IoT operating system. However, Fuchsia also supports mobile devices and laptops, so Google has great ambitions for this early-stage project.

6. NuttX – The non-restrictive, BSD-licensed NuttX is known for being the most common real-time operating system for open-source drones, running on APM/ArduPilot and PX4 UAV platforms, both 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 greatly simplified in functionality.”

7. RIOT OS – With a history of 8 years, RIOT OS is known for its efficient power usage and extensive wireless support. RIOT’s hardware requirements are 1.5KB of memory and 5KB of flash storage, which are almost 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 commonly found in Linux rather than in lightweight real-time operating systems. Other features include low interrupt latency (about 40 clock cycles) and priority-based scheduling. You can develop under Linux or OS X, using native porting versions deployed to embedded devices.

8. TinyOS – This mature open-source operating system, licensed under BSD, is very small and supports low-power, with MCU target devices that can have “only a few KB of memory and several tens of KB of code space.” The event-driven TinyOS is written in nesC, a variant of C, and is often used by researchers studying low-power wireless networks (including multi-hop networks). The project team itself admits that “computationally intensive applications may be difficult to write.” The project is committed to providing support for Cortex-M3, but it is still designed for low-end MCUs and radio chips.

9. Zephyr – This lightweight, secure-featured Zephyr RTOS from the Linux Foundation can run on devices with only 2-8KB of memory. Zephyr can run on x86, ARM, and ARC systems, primarily focusing on MCU-based devices that use Bluetooth/BLE and 802.15.4 radio (such as 6LoWPAN). Zephyr is based on Wind River’s Rocket OS, which is based on Viper, a streamlined version of VxWorks. The initial target devices include Arduino Due and Intel’s Arduino 101 and others. Zephyr has recently appeared in SeeedStudio’s 96Boards IoT Edition BLE Carbon SBC, receiving support from a new Linaro LITE working group.

Understanding IoT Open Source Operating Systems

Copyright statement: This article aims to share and disseminate high-quality content, the copyright belongs to the original author. If there are copyright issues, please contact for deletion.

Leave a Comment