The question is not which is the best in the world, it is the selection which one fits the best to your product. The first decision is which IOT functionality you are aiming:
- IOT data collection, connectivity, remote controlled
- IOT data collection, connectivity, immediate decisions, controlling
- IOT data repository and IOT analytics
Here some overview of typical Operating System types for industrial use according function, with useability:
Embedded OS | IOT data collection, connectivity, remote controlled
This type of operating system is typically designed to be resource-efficient and reliable. Resource efficiency comes at the cost of losing some functionality or granularity that larger computer operating systems provide, including functions which may not be used by the specialized applications they run. Depending on the method used for multitasking, this type of OS is frequently considered to be a real-time operating system.
To be used in case of:
- Embedded computer systems
- Small machines with less autonomy
- Device examples: Controllers, Smart Cards, Mobile devices, sensors, Car ECUs, M2M devices, …..
- Compact and extremely efficient
- Limited resources
Products commonly used:
- INTEGRITY (RTOS)
- VxWorks.
- Linux, including RTLinux, Yocto (Linux distribution for IoT), MontaVista Linux
- Embedded Android
- iOS
- Windows CE
- MS-DOS or DOS Clones
- Unison OS
Real time OS | IOT data collection, connectivity, immediate decisions, controlling
A RTOS is an operating system intended to serve real-time applications that process data as it comes in, typically without buffer delays. Processing time requirements & OS delay are measured in tenths of seconds or shorter increments of time. A real-time system is a time-bound system which has well-defined, fixed time constraints. Processing must be done within the defined constraints or the system will fail. They either are event-driven or time-sharing. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock interrupts. Most RTOSs use a pre-emptive scheduling algorithm.
To be used in case of:
- deterministic nature of behaviour
- Real time event handling and priority driven state / event coupling
- specialized scheduling algorithms
- Clock interrupt handling
Products commonly used:
- INTEGRITY (RTOS)
- VxWorks
- Windows CE
- DSP/BIOS
- QNX
- RTX
- ROS
- FreeRTOS (emb.)
Server OS | IOT data repository and IOT analytics
A server operating system (OS) is a type of operating system that is designed to be installed and used on a server computer. It is an advanced version of an operating system, having features and capabilities required within a client-server architecture or similar enterprise computing environment. Some of the key features of a server operating system include:
- Ability to access the server both in GUI and command-level interface
- Execute all or most processes from OS commands
- Advanced-level hardware, software and network configuration services
- Install/deploy business applications and/or web applications
- Provides central interface to manage users, implement security and other administrative processes
- Manages and monitors client computers and/or operating systems
To be used in case of:
- Virtual machine
- Virtualization
- large server warehouses
- Micro Service based
Products commonly used:
- Windows Server
- Mac OS X Server
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server
- Debian, Ubuntu
- CentOS
- Gentoo
- Fendora
- ROS