doc: Edit About Zephyr for readability.

Edit the content, adding bold text and headings for readability.
Revised the structure based on comments by developers.
Resubmitted to solve merge issues.

Change-Id: I7679eb7c71eab5cd18addcdb296c376923984494
Signed-off-by: L.S. Cook <leonax.cook@intel.com>
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
This commit is contained in:
Rodrigo Caballero 2015-10-14 22:39:43 -05:00 committed by Anas Nashif
commit 314432e90f

View file

@ -1,57 +1,65 @@
.. _about_zephyr::
About Zephyr
############
About
#####
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 |codename| 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
It is designed to be supported by multiple architectures, including
ARM Cortex-M, Intel x86, and ARC. The full list of supported platforms
can be found :ref:`here <platform>`.
Licensing
*********
The Zephyr project associated with the kernel makes it available
to users and developers under the Apache License, version 2.0.
Key Features
************
Distinguishing 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 |codename| offers a number of features that distinguish it from other
small-footprint OSes:
The Zephyr kernel provides an extensive suite of services,
which are summarized below.
#. **Single address-space OS**. Combines application-specific code
with a custom kernel to create a monolithic image that gets loaded
and executed on a system's hardware. Both the application code and
kernel code execute in a single shared address space.
* Multi-threading services, including both priority-based, non-preemptive fibers
and priority-based, preemptive tasks (with optional round robin time-slicing).
#. **Highly configurable**. Allows an application to incorporate *only*
the capabilities it needs as it needs them, and to specify their
quantity and size.
* Interrupt services, including both compile-time and run-time registration
of interrupt handlers, which can be written in C or assembly language.
#. **Resources defined at compile-time**. Requires all system resources
be defined at compilation time, which reduces code size and
increases performance.
* Inter-thread synchronization services, including binary semaphores,
#. **Minimal error checking**. Provides minimal run-time error checking
to reduce code size and increase performance. An optional error-checking
infrastructure is provided to assist in debugging during application
development.
#. **Extensive suite of services** Offers a number of familiar services
for development:
* *Multi-threading Services* for both priority-based, non-preemptive
fibers and priority-based, preemptive tasks with optional round robin
time-slicing.
* *Interrupt Services* for both compile-time and run-time registration
of interrupt handlers.
* *Inter-thread Synchronization Services* for binary sempahores,
counting semaphores, and mutex semaphores.
* Inter-thread data passing services, including basic message queues,
enhanced message queues, and byte streams.
* *Inter-thread Data Passing Services* for basic message queues, enhanced
message queues, and byte streams.
* Memory allocation services, including dynamic allocation and freeing of
* *Memory Allocation Services* for dynamic allocation and freeing of
fixed-size or variable-size memory blocks.
* Power management services, including tickless idle and an advanced idling
* *Power Management Services* such as 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>`.