zephyr/doc/about_zephyr.rst

58 lines
2.2 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.
The open source project associated with the Zephyr kernel makes it available
to users and developers under a Revised BSD License.
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 synchronization services, including binary semaphores,
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 supported on multiple architectures,
including ARM Cortex-M, Intel x86, and ARC. The list of supported platforms
can be found :ref:`here <platform>`.