An operating system (OS) is a software layer that manages the resources of a machine and orchestrates the execution of several tasks. Most microcontrollers do without one. The program runs “bare metal”, straight on the processor: resources are tiny, and the behaviour stays perfectly deterministic. In between, some projects use an RTOS, not a full OS but a task scheduler with timing guarantees (the ESP32 under the Arduino core already runs FreeRTOS under the bonnet: Multitasking with FreeRTOS). It is where the progression of architectures set out in Firmware ends up. Finally, more powerful platforms such as the Raspberry Pi under Linux run a full OS: comfortable networking and files, but latencies with no guarantee, so no hard real time.
See also
- Microcontroller — most of them work without an operating system
- Processor — the unit the program runs on, with or without an OS
- Firmware — structuring embedded code, from super-loop to RTOS
- Multitasking with FreeRTOS — the RTOS in practice
- Raspberry Pi — the full-OS platform of this wiki