---
title: Operating system
lang: en
type: notion
tags:
  - eee
  - notion
prerequis:
  - microcontroleur-en
aa: []
phases: []
draft: false
source_fr: embarque/mcu/systeme-d-exploitation.md
source_sha256: b5b38253f61c1cd2c357deacd0aaef534466f96e48599f17f20dee17302b39fb
---

An **operating system** (OS) is a software layer that manages the resources of a machine and orchestrates the execution of several tasks. Most [[microcontroleur-en|microcontrollers]] do without one. The program runs "bare metal", straight on the [[processeur-en|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: [[esp32-freertos-en|Multitasking with FreeRTOS]]). It is where the progression of architectures set out in [[firmware-en|Firmware]] ends up. Finally, more powerful platforms such as the [[raspberry-pi-en|Raspberry Pi]] under Linux run a full OS: comfortable networking and files, but latencies with no guarantee, so no hard real time.

## See also

- [[microcontroleur-en|Microcontroller]] — most of them work without an operating system
- [[processeur-en|Processor]] — the unit the program runs on, with or without an OS
- [[firmware-en|Firmware]] — structuring embedded code, from super-loop to RTOS
- [[esp32-freertos-en|Multitasking with FreeRTOS]] — the RTOS in practice
- [[raspberry-pi-en|Raspberry Pi]] — the full-OS platform of this wiki
