It was almost two decades ago that the open source movement started its journey in the tech world. Over the years, with the overwhelming success of projects like Linux, Ubuntu, MySQL, Apache, etc., the niche has grown into becoming a mainstream movement. Such has been its success that tech biggies like Apple, Microsoft, and IBM have also embraced it and have started using the open-source software development model.
Nowadays, companies like Samsung, Google, Huawei, and ARM etc. have also started embracing the open source model in the Internet of Things (IoT) space by exposing several of their projects, including both hardware and software, to the developer community and even inviting them into participating towards contributing and creating a world that is technologically robust and more reliable.
In the light of progress achieved in the open source niche, we at IndianWeb2 have listed 7 of the best operating systems for IoT devices that are open source and currently being put to use in a wide range of smart devices.
Supported on hardware platforms such as TI CC2538, nRF52832, TI MSP430x, Atmel AVR, TI MSP430 and Atmel Atmega128rfa1, Contiki was created by Adam Dunkels 15 years ago in the year 2002. Released under a BSD license, the open source software now boosts of developers from all around the world. It supports a built-in Internet Protocol suite (TCP/IP stack) and can easily work on even constrained devices that have 30KB of ROM and 30KB of RAM. It also provides multitasking.
Supporting interconnection technologies such as LTE, NB-IoT, Wifi and 6LoWPAN, Huawei LiteOS as the name suggests is a product of China-based telecom biggie Huawei. Released under a ISC license in the year 2015, LiteOS is a 10KB real-time operating system (OS) which boosts of advanced features such as auto networking, zero configuration and auto discovery. It can be easily installed on Android devices, and can also relate to several other third-party devices. Kernel of LiteOS even supports multi-CPU architectures such as ARM, DSP, MIPS and x86.
Compatible with Qualcomm Dragonboard, Samsung Artik, Intel Joule and Raspberry Pi2 and Pi3, Ubuntu Core 16 has been conceived and released by Canonical. Sometimes also referred to as Snappy because the OS gets delivered as a Linux application package known as snaps, Ubuntu core 16’s base file is just 350MB. All the other files after installation are stored on the OS in the format of images.
Supporting intercommunication technologies such as Wi-Fi, bluetooth and thread, Brillo by tech giant Google is an Android-based OS meant for embedded devices. It supports various architectures such as ARM, Intel and MIPS, and can easily run on even low-end devices which have at least 32MB of RAM and 128MB of ROM. Since it makes use of secure boot and signed over-the-air updates, Brillo is much more secure than others.
Supporting architectures such as ARM, x86, ARC, RISC-V and NIOS-II, Zephyr was launched in February last year as a collaborative project under the Linux Foundation. Now available under a Apache 2.0 license, Zephyr is a real-time OS which can even function on a device with 8KB memory. The OS is completely secure from any compile time attacks as it has no loadable kernel modules. The kernel in Zephyr OS has been statically compiled into a single binary executable file. The biggest USP of Zephyr OS is its interconnectivity technology, which includes bluetooth, bluetooth LE, Wi-Fi, 6LoWPAN, CoPA and NFC.
Supporting architectures such as MSP430, ARM7, Cortex-M0, M3 and M4, and x86, RIOT is an Internet of Things OS with some real-time capabilities. The OS, which is developed by a consortium of universities in Germany and France, is based on microkernel architecture and functions on 8-32bit microcontrollers. The OS boosts of multi-threading and the entire IoT network stack including 802.15.4 Zigbee, 6LoWPAN, ICMP6, Ipv6, RPL and CoAP. It can even run on low-end devices with a minimum of 1.5KB of RAM and 5KB of ROM.
Supporting boards such as Arduino Zero and Zero Pro; Arduino M0 Pro with ATSAMR21G18a Cortex M0; Arduino 101 (Bluetooth controller only) and Arduino Primo (Bluetooth controller and host), Apache Mynewt is a real-time IoT OS. Released under the under the Apache License 2.0, the OS can effectively function on low-end devices with a minimum of 8KB of RAM and 64 KB of ROM. Apache Mynewt’s Kernel is just 6KB but easily supports multi-stage software watchdog, priority-based scheduling, preemptive multithreading and memory heap and memory pool allocation. Currently, the OS only supports Bluetooth low energy, but Bluetooth 5, Wi-Fi and Thread are in the pipeline.