# freertos/freertos-kernel

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/freertos-freertos-kernel).**

4,297 stars · 1,562 forks · C · MIT

## Links

- GitHub: https://github.com/FreeRTOS/FreeRTOS-Kernel
- Homepage: https://www.FreeRTOS.org
- awesome-repositories: https://awesome-repositories.com/repository/freertos-freertos-kernel.md

## Description

FreeRTOS-Kernel is a real-time operating system kernel for microcontrollers. It provides a multitasking environment through a priority-based task scheduler, an embedded memory manager, and an inter-process communication framework to ensure time-critical tasks meet their deadlines.

The kernel includes a software timer engine for executing functions at predefined intervals or after set delays. It supports a minimal model of concurrent tasks and lightweight co-routine execution for systems with limited memory resources.

The project covers a broad surface of embedded resource management, including inter-task communication via queues and event groups, and deterministic system resource scheduling.

Project integration is managed through build system integration using fetch tools or version control submodules.

## Tags

### Operating Systems & Systems Programming

- [Microcontroller Kernels](https://awesome-repositories.com/f/operating-systems-systems-programming/microcontroller-kernels.md) — Acts as a full core kernel implementation for managing hardware abstraction and process scheduling on microcontrollers.
- [Preemptive Multitasking Kernels](https://awesome-repositories.com/f/operating-systems-systems-programming/preemptive-multitasking-kernels.md) — Provides a preemptive multitasking kernel that ensures time-critical tasks meet deadlines on microcontrollers. ([source](https://github.com/freertos/freertos-kernel#readme))
- [Inter-Process Communication](https://awesome-repositories.com/f/operating-systems-systems-programming/inter-process-communication.md) — Provides core inter-process communication primitives such as thread-safe message queues for data exchange between tasks.
- [Kernel Context Switching](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-context-switching.md) — Saves processor registers to the task stack during context swaps to preserve execution state.
- [Embedded Memory Management](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/embedded-memory-management.md) — Provides a dynamic memory allocation system tailored for the constraints of microcontrollers and real-time environments.
- [Real-Time Operating Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/real-time-operating-systems.md) — Provides a multitasking real-time operating system kernel ensuring deterministic scheduling for microcontrollers.
- [Real-Time Implementations](https://awesome-repositories.com/f/operating-systems-systems-programming/real-time-scheduling-theory/real-time-implementations.md) — Implements practical real-time scheduling algorithms to ensure time-critical tasks meet their deadlines.
- [Real-Time Task Scheduling](https://awesome-repositories.com/f/operating-systems-systems-programming/real-time-task-scheduling.md) — Implements a deterministic real-time scheduler for managing task execution and hardware resource allocation. ([source](https://github.com/freertos/freertos-kernel#readme))
- [Preemptive Scheduling](https://awesome-repositories.com/f/operating-systems-systems-programming/task-priority-management/preemptive-scheduling.md) — Implements a preemptive scheduler that ensures high-priority tasks can interrupt lower-priority ones for real-time response.
- [Co-routine Runtimes](https://awesome-repositories.com/f/operating-systems-systems-programming/co-routine-runtimes.md) — Supports lightweight co-routine execution for systems with extremely limited memory resources. ([source](https://github.com/freertos/freertos-kernel#readme))
- [Fixed-Size Memory Pool Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/preallocated-memory-pools/fixed-size-memory-pool-managers.md) — Implements fixed-size memory pool managers to prevent heap fragmentation and ensure deterministic allocation times.
- [Software Timer Engines](https://awesome-repositories.com/f/operating-systems-systems-programming/software-timer-engines.md) — Provides a dedicated engine for executing specific functions at predefined intervals or after set delays.
- [Task Blocking Mechanisms](https://awesome-repositories.com/f/operating-systems-systems-programming/task-blocking-mechanisms.md) — Places tasks in a dormant state using wait-lists until a specific event or timeout occurs to save CPU cycles.
- [Time Slicing](https://awesome-repositories.com/f/operating-systems-systems-programming/time-slicing.md) — Uses periodic hardware timer interrupts to track system time and switch between equal-priority tasks.

### DevOps & Infrastructure

- [Task Schedulers](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/os-scheduling-simulations/task-schedulers.md) — Implements a priority-based scheduler to manage execution threads and resource allocation on embedded hardware.
- [Timed Event Scheduling](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/delayed-task-scheduling/timed-event-scheduling.md) — Provides software timers for executing specific functions at predefined intervals or after set delays. ([source](https://github.com/freertos/freertos-kernel#readme))

### Networking & Communication

- [Inter-Process Communication Frameworks](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/inter-process-communication/inter-process-communication-frameworks.md) — Ships a framework of IPC primitives, including queues and event groups, for coordinating data exchange between tasks.

### Hardware & IoT

- [Resource-Constrained Concurrency](https://awesome-repositories.com/f/hardware-iot/resource-constrained-concurrency.md) — Supports a minimal model of concurrent tasks specifically designed for systems with very limited available memory.

### Part of an Awesome List

- [Embedded Systems](https://awesome-repositories.com/f/awesome-lists/devops/embedded-systems.md) — Lightweight real-time kernel.
