The main choice of operating system for an embedded system is between a real time operating system (RTOS) and embedded Linux.
The growth in IoT is driving RTOS development, with the need for better performance in constrained environments, and enhanced connectivity and security features. We’ve worked with a wide range of RTOSs, including Amazon’s FreeRTOS, ARM’s mbed, ST’s OS20, VxWorks, pSOS+, μC/OS and Zephyr.
Real time operating systems (RTOS) are differentiated from other embedded systems in that they must respond to stimulus inputs before new inputs are generated. Time of response becomes a critical component of the solution. Examples can be thought of as control systems for industrial machines, fly-by-wire aircraft and autonomous vehicles.
In such solutions time becomes a constraint of the embedded system, just as memory size and power consumption might be for other embedded software developments. Real time solutions require layered support for time critical functions from the hardware device, to the real time operating system and any other application code.