The open source movement which started in 1998 as a niche went on to become a mainstream movement after the success of projects like Linux, Ubuntu, MySQL, Apache, etc. Later, big companies like IBM, Microsoft, and Apple started using the open-source software development model.
Today, companies in IoT space like Samsung, Google, Huawei, and ARM are embracing the open source model by exposing their projects (both hardware and software) to the developer community and inviting them to contribute in building a world that is technologically reliable and robust.
Here are 7 operating systems for IoT devices that are open source and used to power a wide range of smart devices from wearables to driverless cars.
Note: All the operating systems that I’m writing about have two properties in common:
• Low memory footprint
• High power efficiency
Brillo
Google offers this as an Android-based operating system for embedded devices. It can run on constrained/low-end devices with at least 128MB of ROM and 32MB of RAM.
Brillo supports intercommunication technologies such as
• Wi-Fi
• Bluetooth
• Thread
Brillo uses secure boot and signed over-the-air updates which make it more secure. Brillo supports various architectures such as
• ARM
• Intel
• MIPS
Contiki
It was created in 2002 by Adam Dunkels and, currently, has developers all over the world. This open source software is released under a BSD license. Contiki has a built-in Internet Protocol suite (TCP/IP stack) and provides multitasking. It can comfortably work on constrained devices with 30KB of RAM and 30KB of ROM.
Contiki is supported on hardware platforms such as
• TI CC2538
• nRF52832
• TI MSP430x
• Atmel AVR
• TI MSP430
• Atmel Atmega128rfa1
RIOT
RIOT is an IoT operating system with real-time capabilities. It was first developed by a consortium of universities in Germany and France, which included Free University of Berlin, French Institute for Research in Computer Science and Automation, and Hamburg University of Applied Sciences. It is released under the GNU Lesser General Public License (LGPL).
It is based on microkernel architecture and runs on 8-32bit microcontrollers. RIOT supports multi-threading and the entire IoT network stack, which includes
• 802.15.4 Zigbee
• 6LoWPAN
• ICMP6
• Ipv6
• RPL
• CoAP
RIOT can run on constrained devices with a minimum of 1.5KB of RAM and 5KB of ROM; it supports architectures such as
• MSP430
• ARM7
• Cortex-M0, M3 and M4
• x86
Huawei LiteOS
It is developed by Chinese telecom giant Huawei. It was released in 2015 under ISC license. LiteOS is a real-time operating system of just 10KB in size and it supports advanced features such as
• Auto discovery
• Zero configuration
• Auto networking
It supports interconnection technologies such as
• LTE
• NB-IoT
• Wifi
• 6LoWPAN
Kernel of LiteOS supports multi-CPU architectures such as
• ARM
• DSP
• MIPS
• x86
LiteOS can be installed on devices already running on Android, and it can relate to various other third-party devices.
Apache Mynewt
Similar to RIOT and LiteOS, Apache Mynewt is also a real-time operating system for IoT devices.
The source code of Mynewt is distributed under Apache License 2.0. The OS is capable of running on constrained devices with a minimum of 8KB of RAM and 64 KB of ROM. The Kernel of the OS is just 6KB but supports the following:
• Preemptive multithreading
• Priority-based scheduling
• Memory heap and memory pool allocation
• Multi-stage software watchdog
The biggest drawback of Apache Mynewt is its interconnection technology; as of now, it only supports Bluetooth low energy, but Wi-Fi, Thread, and Bluetooth 5 are part of the roadmap.
Currently, Apache Mynewt supports boards such as
• Arduino Zero and Zero Pro
• Arduino M0 Pro with ATSAMR21G18a Cortex M0
• Arduino 101 (Bluetooth controller only)
• Arduino Primo (Bluetooth controller and host)
Zephyr
This is a collaborative project under Linux Foundation and is available through the Apache 2.0 license. It was launched in February 2016.
In Zephyr OS, there are no loadable kernel modules because the kernel is statically compiled into a single binary executable file. This makes Zephyr safe from compile time attacks.
Zephyr is a real-time operating system which can run on a device with memory as small as 8KB. The biggest strength of Zephyr is its interconnectivity technology, which includes
• Bluetooth
• Bluetooth LE
• Wi-Fi
• 6LoWPAN
• CoPA
• NFC
Zephyr supports the following architectures:
• ARM
• x86
• ARC
• RISC-V
• NIOS-II
Ubuntu Core
Canonical, the company behind Ubuntu, recently released Ubuntu Core 16, which is also known as Snappy. It is called Snappy because the operating system (including Kernel, libraries and major applications) is delivered as a Linux application package known as snaps. The base file of Ubuntu core 16 is 350MB and all the files after installation are stored as images.
The Ubuntu Core 16 is compatible with the following boards:
• Qualcomm Dragonboard
• Samsung Artik
• Intel Joule
• Raspberry Pi2 and Pi3
Open source is not just a business model or software development model but is a big opportunity for both professional coders and hobby programmers to touch a billion people and change their lives forever by contributing to open source projects and pushing good code.
Great overview of RTOS Abhimanyu Rathore — thanks for writing it!
I’m not sure where you get the date 1998 for the inception of the open source movement, though.
I date it from the late 1960’s when Thompson & Ritchie started taking disused minicomputers and implementing their own operating system software on them. I think that was the start of it all. They called it “Unix.”
Another early open source (ish) OS was UCSD Pascal in the 70’s. Its existence meant that a wide variety of microcomputer hardware manufacturers did not need to develop a whole OS for their products, but really just a P-code interpreter. This led to a large number of different hardware manufacturers getting into the game, and an explosion of innovation. For example, I programmed a Terak microcomputer as an undergraduate. While Apple had been developing its own OS, it bought the rights to and then suppressed all known copies of the UCSD Pascal Operating System. They then implemented it on their own hardware, and to this day claim that they re-wrote it from scratch for first the Lisa then the Macintosh. (You would think that if this were true, they would have fixed the double disk deadlock bug. Also it was odd that they left — er I mean re-wrote themselves from scratch — a copy of the UCSD logo in their source code such that it wound up burned into the ROMs of the early MACs.)
Anyway, it was the loss of UCSD Pascal to the open source community that instructed the authors of the Berkeley Standard Distribution Unix license and source code authors in the late 70’s to put in protections for its perpetuation as open source even if used in commercial projects, which has withstood being tested repeatedly in various courts of law. You might remember the “trademark wars” on use of the UNIX(tm) name AT&T was waging, which prompted one Unix provisioning and support company to call themselves “Mt XINU” — that’s Unix(tm) spelled backwards! Those of us installing and operating BSD Unix on Vaxen across the land were extremely grateful for their fast provision of raster tapes, documentation and encouraging helpful words transmitted over uh…USENET News and email.
The attempts of various corporations to claw Unix back into the proprietary domain were the impetus for the GNU project, which has developed many of the utilities and most importantly the C compilers and cross compilers these RTOS’ are built with — not to mention Linus Torvald’s highly successful open source project first announced in 1991.
So I think that placing the inception of the open source movement at 1998 is off by about 30 years — but maybe you were thinking of some event that indicated that open source had finally “arrived” as a mass movement. That’s for the historians to debate — I did want to mention these other events in open source history because I was there!