This article introduces common operating systems used in Internet of Things systems and compares some of the most popular options.
Common IoT operating systems include:
- LiteOS
- TinyOS
- RIOT OS
- FreeRTOS
- Contiki OS
- Ubuntu Core
- Windows 10 IoT
In this article, the comparison focuses on Contiki OS, RIOT OS, FreeRTOS, and TinyOS.
Comparison Parameters
Before reading the comparison table, it is important to understand the meaning of the parameters. These parameters are criteria used to evaluate an operating system or development environment.
Architecture in Kernel
Kernel architecture describes the internal structure of the operating system kernel. The kernel manages processes, resources, and low-level system behavior.
- Microkernel: separates services into smaller independent components.
- Monolithic Kernel: includes most system services inside the kernel itself.
Scheduler
The scheduler determines how processing time is shared between tasks. Examples include first come first served, round robin, and priority-based scheduling.
Programming Model
The programming model describes how applications are developed and executed. Examples include event-driven programming, task-based models, and multi-threading.
Targeted Devices
Targeted devices describe the type of hardware that can run the operating system, such as small microcontrollers or ARM-based devices.
Supported MCU Families
This parameter identifies the microcontroller families supported by the operating system, such as ARM Cortex, PIC, AVR, or MSP430.
Programming Languages
This parameter describes the programming languages supported by the system, such as C, C++, nesC, or Assembly.
License
The license describes whether the operating system is open source or commercial. Open-source licenses allow developers to study, modify, and adapt the system.
RAM / ROM
RAM and ROM requirements describe the minimum memory needed to run the operating system or applications on the target device.
Comparison Table
After understanding the parameters, the comparison table can be used to compare Contiki OS, RIOT OS, FreeRTOS, and TinyOS more clearly.
Summary
Choosing an IoT operating system depends on the target hardware, memory requirements, scheduler, programming model, supported languages, and project needs. There is no single best operating system for every case.