RTOS and Embedded Software
Real-time operating systems, embedded Linux and the synchronisation tools for multitasking firmware.
This is an overview — pick a sub-topic below.
Sub-topics (21)
FreeRTOS
The most widely used open-source RTOS (MIT licence), maintained by AWS.
Zephyr RTOS
A Linux Foundation RTOS with device tree, Kconfig, networking, BLE and hundreds of supported boards.
ThreadX (Eclipse ThreadX)
A small, fast, safety-certified RTOS, formerly Azure RTOS, now open source under Eclipse.
RTEMS
Real-Time Executive for Multiprocessor Systems — open-source RTOS used in space missions.
QNX
A commercial microkernel real-time OS used in cars, medical and industrial systems.
VxWorks
A commercial RTOS from Wind River in aerospace, defence and industrial systems.
PREEMPT_RT Linux
Real-time patches (now merged in mainline Linux 6.12+) that make the kernel fully preemptible for low, bounded latency.
Embedded Linux
Linux on embedded processors: bootloader, kernel, device tree and a small root file system.
Yocto Project
A framework for building custom embedded Linux distributions from recipes and layers.
Buildroot
A simpler tool for generating small embedded Linux systems (toolchain, kernel, root file system).
U-Boot
The standard bootloader for embedded Linux: initialises hardware, loads kernel and device tree.
Linux Device Drivers
Kernel modules that expose hardware to user space (character, block, network, platform drivers).
POSIX
Portable OS interface: threads (pthreads), files, signals, timers.
Task Scheduling
How an RTOS chooses which task runs: fixed-priority preemptive scheduling with optional time slicing.
Priority Inversion
A high-priority task waits for a lock held by a low-priority task, while a medium task runs.
Semaphores
Signalling and counting primitives.
RTOS Mutexes
Locks for shared resources, with ownership and priority inheritance.
RTOS Queues
Thread-safe FIFO buffers that pass data between tasks and from ISRs to tasks.
Event Groups
Sets of flag bits that tasks can wait on (any or all).
Memory Pools
Fixed-size block allocators with deterministic timing and no fragmentation.
Inter-Task Communication
Queues, semaphores, event flags, mailboxes, stream/message buffers and task notifications.
Spotted a mistake or want to add detail? Suggest an improvement — Content Contributors' edits are reviewed by editors before they go live.
Discussion (0)
Sign in or join free to ask questions and discuss this topic.