Skip to content

Embedded OS

FreeRTOS

FreeRTOS is an open-source real-time operating system kernel for microcontrollers and small microprocessors. Maintained by Amazon Web Services since 2017, it is one of the most widely deployed RTOS choices in connected IoT devices that do not have the resources to run [Embedded Linux](/knowledge/glossary/embedded-linux/).

Definition

FreeRTOS is an open-source real-time operating system kernel for microcontrollers and small microprocessors. Maintained by Amazon Web Services since 2017, it is one of the most widely deployed RTOS choices in connected IoT devices that do not have the resources to run Embedded Linux.

What it means

FreeRTOS targets microcontroller-class hardware: Cortex-M ARM cores, ESP32, RISC-V microcontrollers, PIC32, and dozens of other architectures. Its core is small (typically 5-10KB compiled), it provides preemptive multitasking with priority scheduling, and it ships with a permissive MIT license. Variants include FreeRTOS-Plus (additional middleware) and Safety-Critical FreeRTOS (certified versions for medical, automotive, industrial use).

The security model in FreeRTOS is what the integrator builds — the kernel itself provides minimal isolation between tasks (no MMU enforcement on most targets), no built-in authentication for network services, and no inherent secure-update mechanism. AWS-curated FreeRTOS bundles often include corePKCS11, coreMQTT, and OTA libraries that provide a starting point, but adoption is uneven.

For offensive-security assessment, FreeRTOS testing focuses on: the integrator's use of memory-protection units (MPU) if available, network-service implementation review (often custom code over LwIP), credential and key handling, and the secure-update path between device and back-end. A 2024-class FreeRTOS device with no MPU enforcement and a custom MQTT client typically has a wide local attack surface.

Related terms

- Embedded Linux - TrustZone - Secure boot - MQTT

Authoritative sources

- FreeRTOS official site (AWS) - FreeRTOS GitHub

---