.. _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 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 supported on multiple architectures, including ARM Cortex-M, Intel x86, and ARC. The list of supported platforms can be found :ref:`here `.