Zephyr (operating system): Difference between revisions

Content deleted Content added
Introiboad (talk | contribs)
mNo edit summary
m removed weasel words
Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit
 
(100 intermediate revisions by 45 users not shown)
Line 1:
{{Short description|Real-time operating system}}
{{Infobox OS
| name = Zephyr
| logo = Zephyr RTOS logo 2015.svg
| logo = File:Zephyr-logo.png
| logo size =
| logo caption = Zephyr Project = logo
| logo alt =
| screenshot = <!-- filenameFilename only; no wikilink, Image:/ or File: -->
| screenshot size =
| screenshot alt =
| caption =
| developer = [[Linux Foundation]],<br />[[Wind River Systems]]
| family = [[Real-time operating system]]s
| working state = Current
| source model = [[Open source model|Open source]]
| released = {{Start date and age|2016|0207|1726|df=yes}}<ref name="zephyr-project" />
| latest release version = 24.02.0
| discontinued = <!-- DO NOT use for articles about releases of operating systems -->
| latest release date = {{Start date and age|2019|092025|07|19|df=yes}}<ref>{{cite web |url= https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2v4.02.0 |title= Zephyr v2v4.02.0|website= [[GitHub]]}}</ref><ref>{{cite web |publisherurl=https://www.zephyrproject.org/zephyr-rtos-4-2-now-available-introduces-renesas-rx-support-usb-video-class-and-more|title= Zephyr RTOS 4.2 Now Available|website= [[Zephyr blog]]}}</ref>
| latest release version = 2.0.0
| marketing target = [[Internet of things]], [[embedded system]]s
| latest release date = {{Start date and age|2019|09|07|df=yes}}<ref>{{cite web |url= https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.0.0 |title= Zephyr v2.0.0 |publisher=}}</ref>
| programmed in = [[C (programming language)|C]] and [[Assembly language|assembly]]
| latest preview version = 2.0.99
| language = English
| latest preview date = {{Start date and age|2019|09|07|df=yes}}
| update model = <!-- APT, Windows Update, etc. -->
| marketing target = [[Internet of things]]
| package manager = <!-- dpkg, rpm, Windows installer, etc. -->
| programmed in = [[C (programming language)|C]] and [[Assembly language|assembly]]
| supported platforms = [[ARM architecture|ARM]] ([[ARM Cortex-M0|Cortex-M0M]], [[ARM Cortex-M3R|Cortex-M3R]], [[ARM Cortex-M4|Cortex-M4A]]), [[ARMARC Cortex-M23(processor)|Cortex-M23ARC]], [[ARMMIPS Cortex-M33architecture|Cortex-M33MIPS]], [[ARMNios Cortex-R|Cortex-R4II]], [[ARM CortexRISC-R|Cortex-R5V]]), [[x86Tensilica|Xtensa]], [[x86-64SPARC]], [[ARC (processor)|ARCx86]], [[RISCx86-V]], [[Nios II]], [[Tensilica|Xtensa64]]
| language = English
| kernel type = [[Microkernel]] (pre-v1.6)<ref name="NanoMicrokernel"/><ref name="Monolithic1"/><ref name="Monolithic2"/><br />[[Monolithic kernel|Monolithic]] (v1.6+)<ref name="Monolithic1"/><ref name="Monolithic2"/>
| update model = <!-- APT, Windows Update, etc. -->
| userland =
| package manager = <!-- dpkg, rpm, Windows installer, etc. -->
| ui =
| supported platforms = [[ARM architecture|ARM]] ([[ARM Cortex-M0|Cortex-M0]], [[ARM Cortex-M3|Cortex-M3]], [[ARM Cortex-M4|Cortex-M4]], [[ARM Cortex-M23|Cortex-M23]], [[ARM Cortex-M33|Cortex-M33]], [[ARM Cortex-R|Cortex-R4]], [[ARM Cortex-R|Cortex-R5]]), [[x86]], [[x86-64]], [[ARC (processor)|ARC]], [[RISC-V]], [[Nios II]], [[Tensilica|Xtensa]]
| license = [[Apache License 2.0|Apache 2.0]]
| kernel type = [[Monolithic kernel|Monolithic]]
| preceded by = Wind River Rocket
| userland =
| ui succeeded by =
| other articles =
| license = [[Apache License 2.0|Apache 2.0]]
| preceded by = Wind River Rocket
| succeeded by =
| website = {{URL|www.zephyrproject.org}}
| other articles =
}}
'''Zephyr''' ({{IPAc-en|ˈ|z|ɛ|f|_|ə|r}}) is a small [[real-time operating system]] (RTOS)<ref>{{Cite news|url=http://linuxgizmos.com/zephyr-a-tiny-open-source-iot-rtos/|title=Meet Linux's little brother: Zephyr, a tiny open-source IoT RTOS|date=2016-02-17|work=LinuxGizmos.com|access-date=2018-02-23|language=en-US}}</ref> for connected, resource-constrained and [[embedded devicesdevice]]s (with an emphasis on [[microcontroller | microcontrollers]]s) supporting multiple architectures and released under the [[Apache License]] 2.0]]. BeyondZephyr itsincludes a [[kernelKernel (operating system)|kernel]], Zephyr includesand all the necessary components and [[Library (computing)|libraries required to develop a full application such as]], [[device driver | device drivers]]s, [[protocol stack | protocol stacks]]s, [[filesystemfile | filesystemssystem]]s, and [[firmware update]]s, needed to develop full [[application software]].<ref name="docs.zephyrproject.org">{{Cite web |url=https://docs.zephyrproject.org/latest/introduction/index.html |title="Zephyr Project documentation: Introduction" |language=en}}</ref>.
 
It is named after [[Zephyrus]], the ancient Greek god of the west wind.<ref>{{Cite web|url=https://docs.zephyrproject.org/latest/develop/west/index.html#west-name|title=West (Zephyr's meta-tool) — Zephyr Project Documentation|website=docs.zephyrproject.org}}</ref>
'''Zephyr''' is a small [[real-time operating system]]<ref>{{Cite news|url=http://linuxgizmos.com/zephyr-a-tiny-open-source-iot-rtos/|title=Meet Linux's little brother: Zephyr, a tiny open-source IoT RTOS|date=2016-02-17|work=LinuxGizmos.com|access-date=2018-02-23|language=en-US}}</ref> for connected, resource-constrained and embedded devices (with an emphasis on [[microcontroller | microcontrollers]]) supporting multiple architectures and released under the [[Apache License 2.0]]. Beyond its [[kernel (operating system)|kernel]], Zephyr includes all the necessary components and libraries required to develop a full application such as [[device driver | device drivers]], [[protocol stack | protocol stacks]], [[filesystem | filesystems]] and [[firmware update]] <ref>{{Cite web|url=https://docs.zephyrproject.org/latest/introduction/index.html|title="Zephyr Project documentation: Introduction"|language=en}}</ref>.
 
== History ==
InZephyr Novemberoriginated 2015,from itVirtuoso wasRTOS originallyfor developed[[digital assignal Rocketprocessor]]s (DSPs).<ref name="zp19">{{Citecite web |last=Clarysse |first=Ivo |date=November 22, 2019 |url=httphttps://windriverwww.com/productszephyrproject.org/zephyr-an-operating-systems/rocketsystem-for-iot/ |title=MCUZephyr Commercial FreeAn RTOSOperating System for smallIoT embedded edge devices {{!}} Rocket|website=windriver.com|language=en|access-date=2018-02-23Zephyr Project}}</ref><ref name="eej"/> In 2001, [[Wind River Systems]] acquired Belgian software company Eonic Systems, the developer of Virtuoso. In November 2015, Wind River Systems renamed the [[operating system]] to ''Rocket'', made it open-source and royalty-free.<ref name="eej">{{Cite webnews |last=Turley |first=Jim |date=25 November 2015 |url=http://www.eejournal.com/archives/articles/20151125-windriver/ |title=Wind River Sets Rocket RTOS Onon Free Trajectory – EEJournal|website=www.eejournal.comElectronic Engineering Journal |publisher=Techfocus Media |language=en-US |access-date=2018-02-23}}</ref><ref>https://software.intel.com/en-us/iot/rocket</ref> kernelCompared byto [[Wind River's Systemsother RTOS, [[VxWorks]], Rocket had much smaller memory needs, especially suitable for [[Internetsensors ofand things]]single-function (IoT)embedded devices.<ref name="patel-zephyr-project">NiheerRocket Patel:could [http://blogs.windriver.com/wind_river_blog/2016/02/wind-river-welcomes-linux-foundations-zephyr-project.htmlfit Windinto Riveras Welcomeslittle Linuxas Foundation’s4 ZephyrKB of Project]memory, Windwhile RiverVxWorks Systems,needed 17200 FebruaryKB 2016or more.<ref name="eej"/ref>
 
In February 2016, ZephyrRocket became a hosted collaborative project of the [[Linux Foundation]] under the name ''Zephyr''.<ref name="zp19"/><ref name=":0">{{Cite news |last=Guerrini |first=Federico |date=2016-02-19 |url=https://www.forbes.com/sites/federicoguerrini/2016/02/19/the-internet-of-things-goes-open-source-with-linux-foundations-zephyr-project/ |title=The Internet of Things Goes Open Source with Linux Foundation's Zephyr Project|last=Guerrini|first=Federico|date=2016-02-19 |work=|newspaper=[[Forbes]] |access-date=2017-01-12|via=}}</ref><ref name="zephyr-project">Zephyr{{Cite Project:web [|url=https://www.zephyrproject.org/news/linux-foundation-announces-project-build-real-time-operating-system-internet-things-devices |title=The Linux Foundation Announces Project to Build Real-Time Operating System for Internet of Things Devices], |author=<!-- Human name. --> |date=17 February 2016 |website=Zephyr Project |publisher=Linux Foundation |archiveurl=https://web.archive.org/web/20160310073146/https://www.zephyrproject.org/news/linux-foundation-announces-project-build-real-time-operating-system-internet-things-devices |archivedate=2016-03-10}}</ref> Wind River Systems contributed the Rocket kernel to Zephyr, but still provided Rocket to its clients, charging them for the cloud services.<ref name="patel-zephyr-project"/><ref name="eej"/> As a result, Rocket became "essentially the commercial version of Zephyr".<ref name="patel-zephyr-project">{{Cite web |url=http://blogs.windriver.com/wind_river_blog/2016/02/wind-river-welcomes-linux-foundations-zephyr-project.html |title=Wind River Welcomes Linux Foundation's Zephyr Project |last=Patel |first=Niheer |date=17 February 2016 |website=Wind River Systems |access-date=18 February 2016 |archive-date=21 February 2016 |archive-url=https://web.archive.org/web/20160221003830/http://blogs.windriver.com/wind_river_blog/2016/02/wind-river-welcomes-linux-foundations-zephyr-project.html |url-status=dead }}</ref>
 
Since then, early members and supporters of Zephyr include [[Intel]], [[NXP Semiconductors]], [[Synopsys]], [[Linaro]],<ref>{{Cite webnews |last=Osborne |first=Charlie |date=2016-02-19 |url=httphttps://www.zdnet.com/article/the-linux-foundations-zephyr-project-building-an-operating-system-for-iot-devices/ |title=The Linux Foundation's Zephyr Project: A custom operating system for IoT devices|last=Osborne|first=Charlie|date=2016-02-19 |website=[[ZDNet]] |publisher=[[CBS Interactive]] |access-date=2017-01-12}}</ref>, [[Texas Instruments]], DeviceTone, [[Nordic Semiconductor]], [[Oticon]], and [[Bose Corporation | Bose]].<ref>{{Cite web |url=https://www.zephyrproject.org/#project-members/|title="Zephyr Project Members"|website=Zephyr Project}}</ref>
 
{{As of|2025|01}}, Zephyr had the largest number of contributors and commits compared to other RTOSes (including [[Mbed]], [[RT-Thread]], [[NuttX]], and [[RIOT (operating system)|RIOT]]).<ref>{{Cite web |url=https://github.com/zephyrproject-rtos/zephyr |title=Zephyr GitHub page |website=[[GitHub]] |date=January 30, 2025}}</ref>
== Features ==
 
== Features ==
Zephyr intends to provide all necessary components needed to develop resource-constrained and embedded or microcontroller-based applications. This includes but is not limited to:<ref>{{Cite web|urlname=https://"docs.zephyrproject.org/latest/introduction/index.html|title="Zephyr Project documentation: Introduction"|language=en}}</ref>:
 
* A small-footprint kernel
* A flexible configuration and build system for compile-time definition of required resources and modules
* A set of protocol stacks ([[IPv4]] and [[IPv6]], [[Constrained Application Protocol]] (CoAP), [[OMA LWM2M|LwM2M]], [[MQTT]], [[802.15.4]], [[Thread (network protocol)|Thread]], [[Bluetooth Low Energy]], [[CAN_busCAN bus|CAN]])
* A virtual file system interface with several flash file systems for non-volatile storage ([[FatFs]], LittleFS, NVS)
* Management and device [[firmware update | device firmware update]] mechanisms
 
=== Configuration and build system ===
Zephyr uses [[Kconfig]] and [[Device treedevicetree]] as its configuration systems, inherited from the [[Linux kernel]], but implemented in [[Python (programming language)|Python]] programming language for portability to non-[[Unix]] operating systems.<ref>{{Cite web |url=https://github.com/zephyrproject-rtos/zephyr/tree/master/scripts |title="scripts/ folder on |website=[[GitHub"]] |date=12 May 2020}}</ref>. The RTOS build system is based on [[CMake]], which allows Zephyr applications to be built on [[Linux]], [[macOS]], and [[Microsoft Windows]].<ref>{{Cite web |url=https://docs.zephyrproject.org/latest/application/index.html |title="Application Development: Zephyr Project documentation:Documentation Application|website=Zephyr Development"Project}}</ref>.
 
===''West'' utility tool===
Zephyr uses [[Kconfig]] and [[Device tree]] as its configuration systems, inherited from the [[Linux kernel]] but implemented in Python for portability to non-Unix operating systems<ref>{{Cite web|url=https://github.com/zephyrproject-rtos/zephyr/tree/master/scripts|title="scripts/ folder on GitHub"}}</ref>. The RTOS build system is based on [[CMake]], which allows Zephyr applications to be built on [[Linux]], [[macOS]] and [[Microsoft Windows]]<ref>{{Cite web|url=https://docs.zephyrproject.org/latest/application/index.html|title="Zephyr Project documentation: Application Development"</ref>.
Zephyr has a general-purpose tool called ''West'' for managing repositories, downloading programs to hardware, etc.
 
=== Kernel ===
Early Zephyr kernels used a dual [[Microkernel|nanokernel plus microkernel]] design.<ref name="NanoMicrokernel">{{Cite web |last=Wasserman |first=Shawn |date=February 22, 2016 |url=https://mobile.engineering.com/amp/11530.html |title=How Linux's IoT Zephyr Operating System Works |website=Engineering.com}}</ref><ref name="Monolithic1">{{Cite web |last=Helm |first=Maureen |date=December 15, 2016 |url=https://www.zephyrproject.org/announcing-zephyr-os-v1-6-0/ |title=Announcing Zephyr OS v1.6.0 |website=Zephyr Project}}</ref><ref name="Monolithic2">{{Cite web |last=Wong |first=William G. |date=July 6, 2017 |url=https://www.electronicdesign.com/technologies/embedded-revolution/article/21805266/zephyr-a-wearable-operating-system |title=Zephyr: A Wearable Operating System |website=[[Electronic Design]]}}</ref> In December 2016, with Zephyr 1.6, this changed to a [[monolithic kernel]].<ref name="Monolithic1"/><ref name="Monolithic2"/>
 
The kernel offers several features that distinguish it from other small OSes:<ref>{{Cite web|urlname=https://"docs.zephyrproject.org/latest/introduction/index.html|title="Zephyr Project documentation: Introduction"|language=en}}</ref>:
* [[Single address space operating system|Single address- space]]
 
* [[Single address space operating system|Single address-space]]
* Multiple scheduling algorithms
* Highly configurable and modular for flexibility, with resources defined at compile-time
* [[memoryMemory protection unit]] |(MPU) MPU-based memory protection]]
* [[Asymmetric multiprocessing | AMP]] (AMP, based on OpenAMP) and [[Symmetricsymmetric multiprocessing | SMP]] (SMP) support
 
=== Security ===
A group is dedicated to maintaining and improving the security.<ref>{{Cite webnews |last=Wallen |first=Jack |date=2016-02-18 |url=http://www.techrepublic.com/article/linux-foundation-announces-zephyr-project-an-open-source-iot-operating-system/ |title=Linux Foundation announces Zephyr Project, an open source IoT operating system - TechRepublic|last=Wallen|first=Jack|date=2016-02-18|website=[[TechRepublic]] |publisher=[[CBS Interactive]] |access-date=2017-01-12}}</ref> Also, being owned and supported by a community means the eyes of the world's open source developers are vetting the code, which significantly increases Zephyr security.<ref name=":0" />
 
==See also==
* [[Mbed]]
* [[RIOT (operating system)|RIOT]]
* [[Embedded operating system]]
 
==References==
{{Reflist}}
 
== External links ==
*{{Official website|www.zephyrproject.org}}
*{{GitHub|https://github.com/zephyrproject-rtos/zephyr}}
 
{{Real-time operating systems}}
{{Linux Foundation}}
 
[[Category:ARM operating systems]]
Line 89 ⟶ 84:
[[Category:Free software operating systems]]
[[Category:Linux Foundation projects]]
[[Category:Operating system stubs]]
[[Category:Real-time operating systems]]
[[Category:Software using the Apache license]]
[[Category:IA-32 operating systems]]
[[Category:X86-64 operating systems]]
[[Category:MIPS operating systems]]