mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-28 05:55:22 +00:00
A complete rewrite of the Overview section. The revised text provides a more logical and comprehensive introduction to the main concepts and capabilities of Zephyr, without providing an excessive level of detail. (Those details should be provided by the remaining sections of the Kernel Primer.) This rewrite has also resulted in some small changes to the About Zephyr and other Kernel Primer sections. Change-Id: Idd4d5e0f0aabaaee8cd43d12563018ba4d8f7417 Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
55 lines
2.1 KiB
ReStructuredText
55 lines
2.1 KiB
ReStructuredText
.. _about_zephyr::
|
|
|
|
About Zephyr
|
|
############
|
|
|
|
The Zephyr kernel is a small footprint kernel designed for use on
|
|
resource-constrained systems, from simple embedded environmental sensors and
|
|
LED wearables to sophisticated smart watches and IoT wireless gateways.
|
|
|
|
Key Features
|
|
************
|
|
|
|
A Zephyr application combines application-specific code with a custom
|
|
configured kernel to create a monolithic image that is loaded and executed
|
|
on a system's hardware. Both the application code and kernel code execute
|
|
in a single shared address space.
|
|
|
|
The Zephyr kernel provides an extensive suite of services,
|
|
which are summarized below.
|
|
|
|
* Multi-threading services, including both priority-based, non-preemptive fibers
|
|
and priority-based, preemptive tasks (with optional round robin time-slicing).
|
|
|
|
* Interrupt services, including both compile-time and run-time registration
|
|
of interrupt handlers, which can be written in C or assembly language.
|
|
|
|
* Inter-thread signalling services, including binary sempahores,
|
|
counting semaphores, and mutex semaphores.
|
|
|
|
* Inter-thread data passing services, including basic message queues,
|
|
enhanced message queues, and byte streams.
|
|
|
|
* Memory allocation services, including dynamic allocation and freeing of
|
|
fixed-size or variable-size memory blocks.
|
|
|
|
* Power management services, including tickless idle and an advanced idling
|
|
infrastructure.
|
|
|
|
There are several additional features that distinguish Zephyr from
|
|
other small footprint kernels.
|
|
|
|
* Zephyr is highly configurable, allowing an application to incorporate only
|
|
the capabilities it needs, and to specify their quantity and size.
|
|
|
|
* Zephyr requires all system resources to be defined at compile-time
|
|
to reduce code size and increase performance.
|
|
|
|
* Zephyr provides minimal run-time error checking to reduce code size and
|
|
increase performance. An optional error checking infrastructure is provided
|
|
that can assist in debugging during application development.
|
|
|
|
The Zephyr kernel is suppported on multiple architectures,
|
|
including ARM Cortex-M, Intel x86, and ARC. The list of supported platforms
|
|
can be found :ref:`here <platform>`.
|