An embedded operating system is a specially designed operation system, which performs specific kinds of tasks in a small segment of memory unit like a Microcontroller/Microprocessor. Why do we need an operating system to complete a task? The answer is no. We use the operating system depending on our purposes like completing tasks within the time-complexity, easy to manage multiple tasks, requiring fewer resources, etc. But when we talk about the Embedded OS for IoT, it actually means that an embedded operating system within the IoT devices connects to a network of devices.
IoT Operating Systems and Why do we use them?
Internet of Things (IoT) capable microcontroller or sensor is a physical object or hardware, which is converted into an internet-ready computer to connect with the local network and running codebase applications. In our daily life, we are surrounded by these kinds of devices. In short, we say that our smartphones & tablets are IoT-enabled embedded operating system computers. As well as for the home the smart fridges, smart switches/fans, and entertainment devices all are enabled with IoT embedded OS. As a standard operating system like Windows, Linux, macOS helps us to manage or access software on a computer, but an IoT embedded-OS allows us to execute an operation with connected devices. Many of IoT-OS platforms are offered as open-source, so users are allowed to review the code and modify it as required for the IoT applications.
Nowadays, the high requirement of the IoT devices, in normal life to industrial segment, the IoT-OS is used in every segment to provide better data optimizations from the sensors, real-time data update and notify the conditions, control each or group of the device at real-time to access data or actuator and the most important thing is that without any physical interaction user can modify or push updates, upgrades, and repairs. Because of this IoT-OS real-time processing and reliable memory management with minimal buffer delay, we can also refer to it as a real-time operating system (RTOS).
The IoT-OS is built for low resource utilization, with constraints related to size, memory, power, and processing capacity. By choosing the right IoT-OS, users will be able to set up IoT devices, which will run in any situation in any scenario. Because these OSs are open-source, users can select a particular framework depending on there’s operations.
Selecting the best IoT Operating System for your Application
After understanding the what and why of IoT-OS, we can easily select the right OS for completing our IoT operations. Because the IoT-OS is an open-source platform, so, in the market lots of IoT-OS are available. Now, we can check one by one.
IoT OS Names |
Features |
Logo |
RIOT is a free open-source IoT-OS with built-in IoT stacks for IoT applications. RIOT released under the GNU Lesser General Public License (LGPL) and developed by a grassroots community gathering companies, academia, and hobbyists, distributed all around the world. This OS supports low-power IoT devices, and various microcontrollers like 8-bit, 16-bit, and 32-bit and developed for memory-constrained systems with a focus on low-power wireless IoT devices. Because of Microkernel (μ-kernel) architecture, the Kernel uses ~1.5K RAM. We can also run a RIOT-OS code on a Linux/macOS computer. It also supports different network stacks like 6LoWPAN, IPV6, RPL, UDP, TCP, LoRaWAN, 802.15.4, MQTT, and much more. It also supports different PHY technologies (like Bluetooth, NFC, serial, CAN, etc). It also supports 3rd party packages (like lwIP Stack, uIP, Open-thread stack). |
|
|
This is a real-time operating system (RTOS) that is built especially for IoT applications. Zephyr gets support from Linux Foundation and supports multiple hardware architectures (small scales of Cortex-M devices to multi-core 64-bit CPUs). It supports interconnectivity technology, like Bluetooth LE, Wi-Fi, NFC, LoraWAN. Minimum of 8kb RAM and 512kb ROM required to start operation with Zephyr. Zephyr comes with Apache 2.0 open-source license and it is free for commercial and non-commercial projects and also supported by Long-term support (LTS) with security updates. |
|
|
This OS also comes with an open-source licence Apache License 2.0, which provides complete environment support for developing IoT applications. Mynewt uses 6kb kernel memory to deliver and process the IoT operations. It supports the connectivity of the Bluetooth Low Energy 4.2 stack. It supports multistage software watchdog, memory pool allocation, priority-based scheduling.
|
|
|
In 2018 Google launched an embedded operating system, which is called Android Things. Android Things uses only 32-64kb memory of RAM to complete the operations. Because Weave is connected with Android Things, the IoT device can detect each of them by the android smartphone. The SDK of Android Things can help developers to test, build and debug each IoT solution remotely. But unfortunately, Google shut down the Android Things dashboard. |
|
|
In 2002, Contiki was an open-source IoT-OS, invented for low-power microcontrollers. It runs effectively with IPv4 and IPv6 internet protocols. It also provides the support of wireless standard protocols suites like CoAP, 6LoWPAN, RPL. Only 10kb of RAM and 30kb of ROM are used to complete the processes. Contiki OS released under a BSD license and contributors of this open-source are also famous (like Texas-Instrument, Atmel, Cisco, ENEA, RedWire, Oxford University, SAP and many others) |
|
|
Amazon-FreeRTOS invented by Amazon, and it is an open-source released under the MIT open-source license OS with the support of IoT application development. It takes a 6-15kb memory footprint which makes it more reliable to be adopted by small power microcontrollers. Amazon-FreeRTOS comes with AWS IoT Core, which helps the developers to easily access the cloud service of the Amazon Web Service. Because of the data security of Amazon-FreeRTOS support with Transport Layer Security(TLS v1.2) and a variety of microcontroller chipsets over 40 architectures. |
|
|
TinyOS is also an open-source OS under a BSD license. In 2000, it initially released its first version for use. This OS is designed for low-power wireless devices, ubiquitous computing, personal area networks. It supports a complete stack of IPv4, IPv6, 6LoWPAN, RPL. |
|
|
Mbed OS is an open-source OS release under Apache License 2.0, which supports 32-bit ARM Cortex-M IoT microcontrollers. Users can easily develop a code using Mbed online IDE, with the help of a free code editor and compiler. Mbed OS is based on Keil RTX5, which allows the developer to develop code with C/C++. Mbed OS comes with various protocol stacks like Ethernet, USB, CAN, SPI, I2C, RFID, NFC, WiFi, Bluetooth. It also provides multilayer security.
|
|
|
EmMate is FreeRTOS based open-source OS which comes under GPLv3 License. It supports multi-architecture and comes with internet protocol stacks to develop micro to small scale IoT applications. EmMate is a platform-independent OS written in C/C++, so developers can develop code with C/C++. Because of its open-source, users can easily modify, review the code and also contribute with his/her idea. EmMate also comes with migCloud, which helps the developers to easily access the cloud service for IoT applications. |
|
The above table should help you compare different IoT OS and make an informed choice for your specific design. Now, it is very unfair to conclude one Operating System as superior to another, but our personal choice is RIOT OS, mainly for its open-source nature and excellent community support. You can also check out the Getting Started with RIOT OS article to know more about this Embedded OS. What is your choice of Embedded OS and why? Let us know in the comment section.