All News | Boards | Chips | Devices | Software | LinuxDevices.com Archive | About | Contact | Subscribe
Follow LinuxGizmos:
Twitter Facebook Pinterest RSS feed
*   get email updates   *

Meet Linux's little brother: Zephyr, a tiny open-source IoT RTOS

Feb 17, 2016 — by Rick Lehrbaum 26,609 views

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:

— ADVERTISEMENT —


  • 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?


Wind River
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.”

 
Further information

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.
 

(advertise here)


PLEASE COMMENT BELOW

12 responses to “Meet Linux's little brother: Zephyr, a tiny open-source IoT RTOS”

  1. John V. Sparks says:

    Why did they choose Apche 2.0 licence? Ok, I know why: that’s to have support of the industry. But that plays against it in the middle to long term.

    Now we will have a gazillion forked, proprietary, locked down and incompatible versions of Zephyr installed on a gazillion capable but software-obsoleted IOT hardware. And all of them full of bugs that the vendors won’t fix because there is a new incompatible and buggy new version on sale.

    Either they could choose a good license for the ecossytem, like GPL, or they could at least improve on existing micokernel projects, like minix, for instance.

    If you really think about it, this is no different from saying: “Microsoft announces a new RTOS version of Windows for IoT”. We will be just as well locked out of our own buggy, crappy, gizmos. Again.

  2. Ken Pettit says:

    As engineers, it must be that we thrive on constantly re-inventing the wheel I guess. The NuttX RTOS (www.nuttx.org) has been running “Linux on microcontrollers” for nearly 10 years. I have made several contributions to that open source project over the past 2-3 of those years. Seems like a better use of time would have been to make contributions there vs. inventing yet another RTOS. I mean seriously, how many RTOSes does the world need? :) Disregarding all of that, it seems like a good project I guess, though I doubt it will sway me away from NuttX.

  3. Larry Bottorff says:

    Yes, but will Emacs run on it? (Seriously.)

    • Ken Pettit says:

      Well, since it is a POSIX OS, possibly, though why would anyone want to? It would be too resource limited. I mean I can’t haul my 40 foot yacht to the ocean using my bicycle either, but then that’s what a Ford F-150 is built for. Perhaps I’m missing the point, but it seems the utility of running “Linux on microcontrollers” is to have access to well defined and understood APIs for embedded development, not to replace desktop Linux with a $3 piece of silicon.

  4. jezra says:

    so um… where is the Linux gizmo? :)

  5. Phillip Quaife says:

    What self respecting engineer would disagree with all the above sentiments.
    It won’t even compile for arm out of the box.
    Even the newest arrival LiteBSD has more offering and is more open than this vender driven
    notquite opensource ego fest.

    It is a damn shame that the software industry advocates using low skilled uncreative monkeys for a work force.

    What happened to creating your own software.
    Don’t programmers ‘create’ code anymore?
    Are they all just a bunch of kitset assemblers,and paint by numbers drones?

  6. Brian Kuhl says:

    Guys,
    There’s lots of choice out there if you want a different open license in a small RTOS.
    RTEMS, FreeRTOS, eCOS, MQX, and mBed are the ones I trip over most.

    But none have developed long term cross architecture community support, pick your favorite and give it love. Industry, hobbyist, and IoT need a good open source RTOS with wide support.

    Having worked at Wind River for years, I know Zephyr’s lineage, and it’s a good one. But like any open source project only time can tell if it will become relevant.

  7. Stilman says:

    Fast forward to 2019. It’s still not relevant, lol. I am more than happy with FreeRTOS+TCP.

Please comment here...