Operating System for IoT
What Is an IoT Operating System?
Operating systems that are written for the Internet of Things are especially designed to perform within the strict constraints of small IoT devices.
These are embedded operating systems that enable IoT devices to communicate with cloud services and other IoT devices over a global network and can do so within the tight parameters of limited amounts of memory and processing power.
The beauty of these operating systems lies in the opportunities they provide with IoT devices, such as remote data management, cellular connectivity, and more.
In the era of digitization, many aspects of people’s lives are being significantly improved by remotely controllable devices & whole infrastructures — the so-called Internet of Things.
This industry is continually growing & bringing new products: a nearly $250B market is projected to have grown by no less than 5 times by 2027.
Available Choices for IoT
AWS FreeRTOS
Website: https://www.freertos.org/
The official tuturiol: Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf
Also referred to as “Amazon FreeRTOS,” this operating system was invented by Amazon and made an open-source, microcontroller-based operating system that has rapidly become a benchmark IoT OS within the last few years.
FreeRTOS uses Amazon Web Services (AWS IoT Core) to run IoT applications and has a particularly small memory footprint (only 6-15kb) making it a more adaptable small powered microcontroller.
Developers can rest easy knowing that Amazon invested heavily in the development of IoT data security as well.
Contiki
Website: https://www.contiki-ng.org/
Making its debut in 2003, Contiki is an operating system often compared to Microsoft Windows and Linux, but it was designed with a special focus on the nuances of networked, memory-constrained systems (i.e. most IoT devices).
Contiki is an open-source OS most renowned for its ability to easily connect very small, economical, and low-powered microcontrollers to the Internet.
The operating system has a reputation of being exceptionally useful in building complex wireless systems, as well as being highly memory-efficient.
It also suits both business and non-business use cases.
Mbed OS
Website: https://os.mbed.com/mbed-os/
Mbed OS is a free, open-source operating system widely recognized for its usage of an ARM processor and for offering a wide array of connectivity options that developers can play around with, including WiFi and Bluetooth.
Mbed OS's multilayer security protocols are what makes it such an appealing system for developers looking to get started with IoT projects.
One benefit that developers enjoy with Mbed OS is that it keeps their code clean and portable, as well as the ability to make a prototype of IoT applications with the use of ARM cortex M-based devices.
At present, more than 150 boards are supported.
MicroPython
Website: https://micropython.org/
MicroPython is a very compact, open-source reimplementation of the Python programming language with a focus on microcontrollers.
The language is more useful to beginners than other languages, while still being robust enough for industrial use. Also, standard Python is applicable.
An advantage of MicroPython is that it allows developers to rapidly evolve from learning the basics to implementing real project code.
For advanced developers, MicroPython is extensive, with low-level C/C++ functions so developers can mix expressive high-level MicroPython code with faster lower-level code, mixing the best of both worlds into one OS.
Embedded Linux
Website: https://ubuntu.com/embedded
Embedded Linux is built for embedded devices, and it uses a slightly modified version of the Linux kernel. The smaller size and power of Embedded Linux facilitate the integration of all requirements of IoT devices, so you will find that it's useful for navigational devices, tablets, wireless routers, and more.
This is another free, open-source OS that enjoys the support of a large community and many resources that contribute to its development.
The OS takes up a mere 100kb of memory space, making it quick and dynamic, and it also offers an unparalleled level of configuration in the IoT OS scene.
Considered the “Swiss Army Knife” of IoT OSs, Embedded Linux can be installed on nearly any single-board computer, including Raspberry Pi boards.
RIOT
Website: https://www.riot-os.org/
Often considered to be the Linux of the IoT world, RIOT is another open-source operating system specialized for IoT devices. Newcomers with previous Linux experience will find achieving results with this OS to be quite simple.
RIOT supports full multithreading and SSL/TSL libraries, and facilitates the usage of 8, 16, and 32-bit processors. Lastly, there is a port of this OS that makes it possible to run as a Linux or macOS process.
Windows 10 IoT
Website: https://developer.microsoft.com/en-us/windows/iot/
Windows 10 IoT is simply a component of the Microsoft Windows 10 operating system, but it is designed with IoT devices in mind.
An interesting fact is that this OS is divided into two parts:
-
One is Windows 10 IoT Core which is designed to support small embedded devices (covers 80%+ of use cases);
-
The other is Windows 10 IoT Enterprise designed to support heavy-duty industrial applications with high-grade reliability in mind.
Windows 10 IoT Core offers a familiar interface, has better user control than other OSs, and is accepted among the IoT community as being a powerful IoT operating system.
Win 10 IoT is especially useful with the Raspberry PI board series and with the Grove Kit for Win10 IoT Core & Azure platform.
TinyOS
Website: http://www.tinyos.net/
TinyOS is a component-based open-source operating system. “nesC” is the core language of TinyOS, which is a dialect of the C programming language.
This operating system enjoys large support among the development community because of how it optimizes the memory of IoT devices and how the OS tends not to overload IoT devices. One key advantage is transferability:
A TinyOS program can be reusable on other devices if the code need not be changed because of the similarity of the devices.
OpenWrt
Website: https://openwrt.org/
OpenWrt is another open-source option based on Linux and has a strong presence in routers. At present, more than 200 board variations ship with OpenWRT.
The OS has a reputation for preventing security breaches and enjoys the support of a committed base of developers constantly improving it.
OpenWrt is also a highly-customizable OS since it contains the full features of Linux. While OpenWrt has a strong presence in routing equipment, it has slowly permeated other IoT devices with an excellent record of success.
Quick Comparison
IoT Operating System | Features | Use cases |
---|---|---|
Contiki NG | Open-source, free | Networked memory-constrained systems |
FreeRTOS | Open-source, free, uses AWS IoT Core | Devices with tiny amounts of memory |
Mbed OS | ARM-based, high-grade security | For portable code |
MicroPython | Uses standard Python, easy to learn, C++ | Rapid deployment |
Embedded Linux | Linux kernel, free | Versatile - can be used for various use cases |
RIOT | Open-source, full multithreading | Can be run as a MacOS process |
TinyOS | C language, open-source | Portability across similar devices |
Windows 10 IoT | Proprietary, high-grade security | Ideal for heavy-duty industrial use cases |
OpenWrt | Open-source, Linux-based | Primarily used in routers |
Ideas
- To realize a smart switch that can be remotely triggered.
- Make an RC that can do self-driving or obstacle avoidance.
Q
- What hardware?
- Complexity?
- How to minimize the time spent on hardware?