Zephyr RTOS: one small-footprint kernel across ARM, x86, RISC-V and Xtensa, and the release lines you have to choose between
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
At a glance
- What is it?
- Zephyr is an Apache-2.0 real-time operating system for resource-constrained devices, maintained in the zephyrproject-rtos/zephyr repository. This guide covers what the tree contains, how the build is organized, and the decisions its documentation and release cadence push onto you.
- Who is it for?
- Zephyr suits embedded teams that want one open-source RTOS across several CPU architectures and a large board catalog, with Kconfig and devicetree configuration and an active upstream. It suits less well anyone expecting a single-command setup from the repository page or a vendor support contract, since setup lives in the Getting Started Guide and support runs through mailing lists and Discord.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- zephyrproject-rtos/zephyr17,085 ★ · +505
| Repository | 2026-09-21 | 2026-11-14 |
|---|---|---|
| zephyrproject-rtos/zephyr | 16.6k | 17.1k |
505 Stars in the last 54 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
A kernel sized for sensors that also runs gateways
Zephyr is a real-time operating system built on a small-footprint kernel for resource-constrained systems. The range it targets runs from simple embedded environmental sensors and LED wearables up to smart watches and IoT wireless gateways, and the project lists security as a design goal from the start. The code is mostly C and released under Apache-2.0 and the root carries a LICENSES/ directory, README.license and a REUSE.toml file for licensing information. Because one kernel covers both ends of that range, the work of fitting it to a small part falls on configuration rather than on choosing a different OS.
Architectures and boards live in separate trees
The kernel supports ARM Cortex-A, Cortex-R and Cortex-M, Intel x86, ARC, Tensilica Xtensa, RISC-V, SPARC and MIPS. The repository reflects this split: arch/ holds per-architecture code, soc/ holds chip support, boards/ holds board definitions, and dts/ holds devicetree sources. Drivers sit in drivers/, kernel code in kernel/, and larger subsystems in subsys/. The supported boards list at docs.zephyrproject.org is the place to check before buying hardware, because a board without a definition in boards/ leaves that porting work to you.
Kconfig, devicetree and a west manifest shape every build
Zephyr's build is driven by CMake, with CMakeLists.txt and a cmake/ directory at the root, and configured through Kconfig, with Kconfig, Kconfig.zephyr and Kconfig.constants at the top level. Hardware description comes from devicetree in dts/. The root also carries west.yml, submanifests/ and modules/, so the Zephyr tree pulls in further modules rather than holding everything in one repository. The root also has an SDK_VERSION file, zephyr-env.sh for Unix shells and zephyr-env.cmd for Windows, and a snippets/ directory, while samples/sysbuild/ collects the sysbuild samples.
The samples tree is organized by subsystem, not by board
The samples/ directory is the closest thing Zephyr has to a feature map. It splits into application_development, arch, basic, bluetooth, boards, cpp, data_structures, drivers, kernel, modules, net, philosophers, psa, regulator, sensor, shields, subsys, synchronization, sysbuild, tfm_integration and userspace, plus hello_world at the top. A file named sample_definition_and_criteria.rst sets out what counts as a sample, and samples/index.rst ties them into the documentation.
The layout tells you where to look for a capability. Bluetooth work starts in samples/bluetooth/, networking in samples/net/, memory protection between threads in samples/userspace/, and the PSA and TF-M samples in samples/psa/ and samples/tfm_integration/ cover the security side. C++ users have samples/cpp/. The cost is that a sample is written against the kernel and subsystem, not against your exact board, so a sample building for one board does not by itself prove your board has the peripherals it uses. Check the board's own entry under boards/ and the shields under samples/shields/ before treating a sample as a working starting point for your hardware.
The README gives no build commands, and its links point at the latest docs
The repository front page does not walk through a build. It points to the Introduction to Zephyr and the Getting Started Guide on docs.zephyrproject.org, and every documentation link it carries goes to the latest version of the docs. The consequence is that if you check out an older release, the commands and options you read may belong to a newer tree than the one you build. Match the documentation version to the release you check out, and start from samples/hello_world/ before moving to samples/basic/, samples/kernel/ or samples/net/ for your real target.
Three release lines shipped within three months
Zephyr does not move along a single line. Zephyr 4.5.0 was released on 28 October 2026, Zephyr 4.3.2 two days later on 30 October, and Zephyr 4.4.2 on 7 August 2026. The repository itself is active, with the last push on 2 November 2026; the default branch is main. The practical effect is that you choose a line instead of just taking the newest tag: 4.5.0 for the newest kernel, or a point release on an older line if your product is already built on it and you want fixes without a version jump. Read the release notes before moving between them.
Support comes from mailing lists and Discord, not a vendor desk
Community support runs through the users and devel mailing lists at lists.zephyrproject.org, other project subgroups, and a Discord server at chat.zephyrproject.org. The documentation has a page of tips for asking for help, and bugs go to GitHub Issues. Security reports go privately to [email protected], with advisories published in the repository's security section. If your project needs guaranteed response times, nothing in the repository provides that; you would need it from elsewhere. The root also contains AGENTS.md and CLAUDE.md, aimed at AI coding agents, alongside CONTRIBUTING.rst and MAINTAINERS.yml. Before contributing, read CONTRIBUTING.rst and the Contribution Guide; MAINTAINERS.yml and CODEOWNERS map areas of the tree to the people who review them, and the root ships configuration for checkpatch, clang-format, gitlint, ruff and yamllint, so a pull request is checked against those formats.
Editorial conclusion
Zephyr suits embedded teams that want one open-source RTOS across several CPU architectures and a large board catalog, with Kconfig and devicetree configuration and an active upstream. It suits less well anyone expecting a single-command setup from the repository page or a vendor support contract, since setup lives in the Getting Started Guide and support runs through mailing lists and Discord. Before starting, confirm your board is on the supported boards list and choose between the v4.5 line and the maintenance releases such as v4.3.2.
Frequently asked questions
What exactly is Zephyr RTOS?
Zephyr is a scalable real-time operating system with a small-footprint kernel for resource-constrained devices, built with security in mind. It supports ARM, Intel x86, ARC, Tensilica Xtensa, RISC-V, SPARC and MIPS and is licensed under Apache-2.0.
How do I use Zephyr RTOS?
Start with the Introduction to Zephyr and the Getting Started Guide on docs.zephyrproject.org, then build the samples in the Zephyr repository, beginning with samples/hello_world.
How do I install Zephyr RTOS?
Zephyr's setup steps live in the Getting Started Guide at docs.zephyrproject.org rather than on the repository page. Use the documentation version that matches the release you check out, such as 4.5.0.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zephyrproject-rtos-zephyr)Star history chart for your README
[](https://hysenlabs.com/projects/zephyrproject-rtos-zephyr)Was this useful?