# Zephyr Operating System > [!ai]+ Perplexity > > See also > - [[Zephyr (OS) Real-Time Scheduling]] > > Zephyr is a small, scalable, open-source real-time operating system (RTOS) designed for connected, resource-constrained, and embedded devices, with a particular emphasis on microcontrollers[1][2][4][6]. It supports multiple hardware architectures and is optimized for resource-constrained devices, making it suitable for a wide range of applications, from simple embedded environmental sensors to sophisticated embedded controllers, smartwatches, and IoT wireless applications[2][4]. > > ## History > > Zephyr originated from the Virtuoso RTOS for digital signal processors (DSPs)[1]. The project was announced by the Linux Foundation on February 17, 2016[1][6]. Since its inception, the project has seen numerous updates and improvements, with the latest release being version 3.5.0[1][6]. > > ## Features > > Zephyr includes a kernel, all necessary components and libraries, device drivers, protocol stacks, file systems, and firmware updates needed to develop full application software[1][6]. It offers a number of familiar services for development, including: > > - Multi-threading Services for cooperative, priority-based, non-preemptive, and preemptive threads with optional round-robin time-slicing. It also includes POSIX pthreads compatible API support[4]. > - Interrupt Services for compile-time registration of interrupt handlers[4]. > - Memory Allocation Services for dynamic allocation and freeing of fixed-size or variable-size memory[4]. > - Inter-thread Synchronization Services for binary semaphores, counting semaphores, and mutex semaphores[4]. > > --- > # Zephyr Operating System: Technical Features > > ## Highly Configurable and Modular > > Zephyr is designed to be highly configurable and modular, allowing developers to include or exclude optional features as needed. This flexibility makes it easy to customize the RTOS to meet the specific needs of a given application[1][4]. > > ## Multi-Threading Services > > Zephyr supports cooperative, priority-based, non-preemptive, and preemptive threads with optional round-robin time-slicing. It also includes POSIX pthreads compatible API support. This feature allows for efficient task scheduling and execution, which is crucial in real-time applications[2]. > > ## Memory Allocation Services > > Zephyr provides memory allocation services for dynamic allocation and freeing of fixed-size or variable-size memory. This feature is particularly useful in resource-constrained environments where efficient memory management is critical[2]. > > ## Interrupt Services > > Zephyr provides interrupt services for compile-time registration of interrupt handlers. This feature allows for efficient handling of hardware interrupts, which is crucial for real-time response in embedded systems[2][4]. > > ## Communication Protocols > > Zephyr supports a range of communication protocols, including TCP/IP, Bluetooth Low Energy, and USB, to enable communication between devices. This makes it suitable for a wide range of IoT applications where different communication protocols are used[4]. > > ## Real-Time Scheduling > > Zephyr supports a range of real-time scheduling algorithms, including rate-monotonic scheduling and earliest-deadline-first scheduling, to ensure that tasks are executed on time. This is crucial in real-time applications where tasks often have strict timing constraints[4]. > > ## Support for Multiple Architectures > > Zephyr supports a wide range of hardware architectures, including Arm Cortex-M, Intel x86, and RISC-V, among others. This makes it a versatile RTOS that can be used in a wide range of embedded systems[2][4]. > > ## Configuration and Build System > > Zephyr employs the Linux kernel's Kconfig and device tree configuration systems, which were converted into Python code for compatibility with non-Unix operating systems. The CMake-based RTOS build system enables the development of Zephyr apps on Linux, macOS, and Windows[5]. > > ## Kernel Architecture > > Early Zephyr kernels used a dual nanokernel plus microkernel design. With Zephyr 1.6, released in December 2016, this transitioned to a monolithic kernel. This design allows for efficient task execution and resource management in the system[5]. > > ## Licensing > > Zephyr is permissively licensed using the Apache License 2.0. There are some imported or reused components of the Zephyr project that use other licensing[2]. > > Citations: > [1] https://zephyrproject.org/learn-about/ > [2] https://docs.zephyrproject.org/latest/introduction/index.html > [3] https://en.wikipedia.org/wiki/Zephyr_(operating_system) > [4] https://sternumiot.com/iot-blog/zephyr-rtos-features-examples-benefits-and-challenges/ > [5] https://www.scaler.com/topics/zephyr-operating-system/ > [6] https://se.ewi.tudelft.nl/desosa2019/chapters/zephyr/ > [7] https://devm.io/iot/os-zephyr > [8] https://www.telink-semi.com/zephyr-rtos-overview/ > > --- > ## Supported Architectures > > Zephyr supports a wide range of architectures, including ARCv2 (EM and HS), ARCv3 (HS6X), ARMv6-M, ARMv7-M, ARMv8-M (Cortex-M), ARMv7-A, ARMv8-A (Cortex-A, 32- and 64-bit), ARMv7-R, ARMv8-R (Cortex-R, 32- and 64-bit), Intel x86 (32- and 64-bit), MIPS (MIPS32 Release 1 specification), NIOS II Gen 2, RISC-V (32- and 64-bit), SPARC V8, and Tensilica Xtensa[4]. > > ## Licensing > > Zephyr is permissively licensed using the Apache License 2.0[6]. There are some imported or reused components of the Zephyr project that use other licensing[4]. > > ## Community and Contributions > > The Zephyr Project is backed by the Linux Foundation and has contributions from major industry players[1]. As of October 2023, the project has over 85,800 commits, 1,806 contributors, and 135 repositories[3]. > > ## References > > [1] Zephyr (operating system) - Wikipedia[2] Home - Zephyr Project Wiki[3] The Zephyr Project – A proven RTOS ecosystem, by developers, for developers[4] Introduction - Zephyr Project Documentation[5] Zephyr - Wikidata[6] Zephyr (operating system) - Wikiwand > > Citations: > [1] https://en.wikipedia.org/wiki/Zephyr_(operating_system) > [2] https://github.com/zephyrproject-rtos/zephyr/wiki/Home > [3] https://www.zephyrproject.org > [4] https://docs.zephyrproject.org/latest/introduction/index.html > [5] https://www.wikidata.org/wiki/Q22909895 > [6] https://www.wikiwand.com/en/Zephyr_(operating_system) > [7] https://www.scribd.com/document/648777900/Zephyr-operating-system-Wikipedia > [8] https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems > > []