The Linux Foundation has launched the Zephyr Project, to foster an open source, small footprint, modular, scalable, connected, real-time OS for IoT devices.
Normally we think of the Linux Foundation as being all about Linux. But as the organization has matured, it has expanding its scope to embrace an ever-wider range of open source standards and software. Despite the existence and widespread use of minimalistic Linux implementations including uClinux, OpenWrt, Brillo, and Ubuntu Core, the exponential proliferation of smart, connected devices — such as light bulbs, thermostats, security cameras, sensors, and many others — has fueled intense interest in minimizing the power, space, and cost budgets of IoT hardware.
Whereas stripped-down Linux implementations have been known to run within resources as low as 200KB of RAM and 1MB of flash, IoT end points, which will often be controlled by tiny microcontrollers — not smartphone-style SoCs — may well be limited to a few tens or hundreds of kilobytes of memory and storage. Such severely constrained resources call for extremely parsimonious control software; and yet, many typical IoT applications still need to satisfy real-time performance constraints. Thus, the interest in creating a highly efficient, modular, scalable, connected, real-time operating system (RTOS), with Linux-like openness and collaborative, community-based development and support for low-end IoT devices.
Zephyr Project functions and components
(click images to enlarge)
As shown in the images above, the Zephyr Project’s RTOS implements both a small footpoint “microkernel” and an even tinier “nanokernel.” Key features of the Zephyr Project’s RTOS are said to include:
- CPU architecture independent
- Minimal footprint — can run in as little as 10KB
- Modular and scalable
- Highly secure
- Seemless connectivity, supporting a broad range of wireless and wired technologies
- Powerful developer tools
- Open source kernel (and perhaps other components), released under the Apache v2.0 License
In order to ensure that Zephyr satisfies the security requirements of IoT devices, the project will include a dedicated security working group along with a dedicated security maintainer, says the LF. Another goal is the provision of extensive and seemless communications and networking support. Bluetooth, Bluetooth Low Energy, and IEEE 802.15.4 (6LoWPAN) are supported initially, with other standards and technolgies to follow.
Of course processor support will be a make or break requirement. In that regard, the Zephyr Project initially supports x86, ARM, and ARC architectures. More specifically, it currently targets the following platforms, with others to be added later:
- Arduino 101 (Intel Curie Module containing x86 and Synopsys ARC EM cores)
- Arduino Due (Atmel SAM3X8E ARM Cortex-M3 CPU)
- Intel Galileo Gen 2
- NXP FRDM-K64F Freedom board (Kinetis K64F ARM Cortex-M4 MCU)
In addition to the boards listed above, taken from the LF’s launch announcement, the Zephyr Kernel v1.0.0 Release Notes page adds the MinnowBoard MAX, Quark D2000, Quark SE, and Galileo boards.
The structure and services of the Zephyr Project software are introduced briefly in the project’s video, below.
Zephyr Project technical overview video
The Zephyr Project’s initial corporate participants include Intel and its Altera and Wind River subsidiaries; NXP, which now includes Freescale; Synopsys; and UbiquiOS Technology. Other companies and organizations are invited to join the initiative.
Is Zephyr derived from Wind River’s “Rocket” RTOS?
Rocket Kernel Primer
(click to enlarge)
Based on the presence of both Intel and Wind River on the Zephyr Project’s corporate roster, we wondered how Wind River’s RTOS assets might interact with this new IoT RTOS initiative, so we reexamined our Nov. 2015 coverage of Wind River’s announcement of its Rocket RTOS. The Rocket was described as a free small footprint IoT-oriented RTOS, that was capable of running on 32-bit microcontrollers in as little as 4KB of memory.
At the time, we speculated that “Rocket” may have been a new name for “Viper,” which earlier had been mentioned as an RTOS option for the Quark processor on Intel’s Edison module, and on Intel’s Galileo Gen 2 board. Additionally, Rocket was said to support Freescale’s Freedom K64F dev board based on a Kinetis K64, K63, or K24 MCUs. Interestingly, this set of processors overlaps nicely with those listed as being supported out of the chute by the Zephyr Project RTOS. To take this line of reasoning a step further, we downloaded the Wind River Rocket Kernel Primer and looked for a possible connection to Zephyr, and immediately found a reference to Zephyr on the first page following the cover.
Excerpt from Wind River’s Rocket Kernel Primer
(click image to enlarge)
As indicated by the image above (taken from that page), “The kernel used in Wind River Rocket is called Zephyr.” Based on that statement, it seemed likely that the Zephyr Project had taken over stewardship of Wind River’s Rocket RTOS and Zephyr kernel. Additionally, the Rocket Kernel Primer defines both microkernel and nanokernel services, and refers to both kernel and nanokernel applications, further matching the Zephyr Project’s software architecture.
Having made that connection, a quick search for the keyword set, “zephyr rocket rtos” turned up a Wind River blog post by Niheer Patel, Wind River’s Product Manager for VxWorks and Wind River Rocket, laying bare the whole situation. Indeed, Wind River Rocket, launched in Nov. 2015, “is essentially the commercial version of Zephyr,” writes Patel. He continues…
Zephyr and Rocket are complementary forces that seek to achieve rapid expansion of these connected devices. For this reason, Wind River contributed the Rocket kernel to Zephyr who brings together industry leaders in software and hardware to build an RTOS for IoT…
….Wind River will continue to maintain and deliver new features to the Zephyr kernel. Rocket, now a lock-step downstream version of Zephyr, takes care of the OS configuration and hardware integration with Wind River Helix App Cloud for a streamlined development experience. App Cloud users can focus efforts on their value-added applications without worrying about the complexities of the underlying RTOS, low-level programming languages, and build tools. Wind River customers and Zephyr project members can benefit from Rocket’s commercial support and App Cloud’s development environment to reach new types of embedded developers.
What’s not so clear, is to what degree Wind River’s Helix ecosystem services will support Zephyr Project RTOS IoT-to-cloud interactions. But given the open source nature of the Zephyr Project, it seems highly likely that the project’s protocols, like its code, will be open.
“Calling all developers!”
“While Linux has proven to be a wildly successful operating system for embedded development, some IoT devices require an RTOS that addresses the very smallest memory footprints,” states the LF in its Zephyr Project launch announcement. “This complements real-time Linux, which excels at data acquisition systems, manufacturing plants and other time-sensitive instruments and machines that provide the critical infrastructure for some of the world’s most complex computing systems.”
“We invite developers to contribute to the Zephyr Project and to help advance a customizable embedded open source RTOS to advance IoT,” said Jim Zemlin, executive director of the Linux Foundation. “By hosting this at The Linux Foundation, we look forward to the cross-project collaboration among Linux and this community.”
The Zephyr Project will host a booth (in location 4-349) next week at the Embedded World 2016 conference in Nuremberg, Germany, where it will showcase the technology through demos and in-booth sessions. Additionally, the group will make a presentation entitled “An open source RTOS to change the face of IoT” (in Session 19 on Feb. 24 at 10:30AM CET). For more details visit the Zephyr Project website and the Zephyr Kernel v1.0.0 release notes and download page.