The power of Open Source is the power of the people. The people rule
– Philippe Kahn (the creator of world’s first camera phone)
The open source movement, which started in 1998 as a niche, went on to become mainstream after the success of projects like Linux, Ubuntu, MySQL, Apache, etc. Later, big companies like IBM, Microsoft, and Apple began adopting the open-source software development model.
Today, companies in the IoT space like Samsung, Google, Huawei, and ARM are embracing open source by opening their hardware and software projects to the developer community and inviting contributions to build robust and reliable technology.
Here are 7 open-source operating systems for IoT devices that power a wide range of smart devices, from wearables to autonomous vehicles.
Note: All listed operating systems have two key traits:
- Low memory footprint
- High power efficiency
Brillo
Google's Android-based OS for embedded devices, capable of running on devices with at least 128MB ROM and 32MB RAM.
Supported communication protocols:
- Wi-Fi
- Bluetooth
- Thread
Brillo supports secure boot, OTA updates, and architectures including ARM, Intel, and MIPS.
Contiki
Created in 2002 by Adam Dunkels, this BSD-licensed OS includes a TCP/IP stack and multitasking support, and runs on devices with 30KB RAM/ROM.
Supported hardware includes:
- TI CC2538
- nRF52832
- TI MSP430x
- Atmel AVR, Atmega128rfa1
RIOT
Developed by a German-French university consortium, RIOT is a real-time OS using a microkernel. It runs on 8-32bit microcontrollers.
Supported protocols:
- 802.15.4 Zigbee
- 6LoWPAN
- ICMP6, IPv6, RPL, CoAP
Runs on devices with 1.5KB RAM and 5KB ROM; supports MSP430, ARM7, Cortex-M0/M3/M4, x86.
Huawei LiteOS
Developed by Huawei, this 10KB-size real-time OS supports auto discovery, zero configuration, and networking.
Supported protocols:
- LTE, NB-IoT
- Wi-Fi, 6LoWPAN
Supports multi-CPU architectures: ARM, DSP, MIPS, x86. Can integrate with Android devices and third-party systems.
Apache Mynewt
Apache-licensed real-time OS that runs on devices with 8KB RAM and 64KB ROM. The 6KB kernel supports:
- Preemptive multithreading
- Priority scheduling
- Memory management
- Watchdogs
Currently supports only Bluetooth Low Energy but future support includes Wi-Fi, Thread, Bluetooth 5.
Supported boards:
- Arduino Zero, Zero Pro, M0 Pro
- Arduino 101, Primo
Zephyr
A Linux Foundation project under Apache 2.0 license, launched in 2016. It uses static compilation for increased security.
Minimum memory: 8KB. Supported protocols:
- Bluetooth, Bluetooth LE
- Wi-Fi, 6LoWPAN
- CoAP, NFC
Supported architectures: ARM, x86, ARC, RISC-V, NIOS-II.
Ubuntu Core
Canonical’s Snappy Ubuntu Core 16 is based on snap packages. The base image is 350MB, with all components stored as isolated images.
Supported boards:
- Qualcomm Dragonboard
- Samsung Artik
- Intel Joule
- Raspberry Pi 2 and 3
Read more: Ubuntu Core 16: Building secure and interoperable IoT ecosystems.
Open source is not just a development model, but a powerful opportunity for coders worldwide to make an impact and touch lives through collaboration and contribution.