Posted on 02/19/2016 7:51:59 AM PST by ShadowAce
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.
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:
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 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.
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...
...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.
M4L Linux
Thanks Shadow. I have been doing a little dipping in the water with Arduino, which I see supported. I did some microcontroller programming 25 years ago, but have forgotten most of it. I will have to look into this further.
Still too large for microcontroller applications. Most microcontrollers don’t even need an operating system, due to the small amount of RAM and ROM available on the IC, like the Atmel AVR uC’s on Arduinos, the PIC uC’s from Microchip, down to all of the old 8031/8051 and 6805/6811 variants.
The compilers and IDE’s used native assembly for programs, and later C for PIC’s and Arduinos.
All true but they’re probably looking to change the paradigm. Maybe (just speculating) people will write simple python apps for IoT applications. I don’t think you could do this sans an OS. What you say is true historically but it doesn’t mean it has to be true in the future.
Are they trying to compete with Raspberry Pi?
The RPi is mainly hardware. It is capable of running complex OSes, but Zephyr is strictly an OS meant to run on multiple types of hardware.
QNX had a pretty nice embedded RTOS kernel called Neutrino, but I think they’ve been lost along the linux wayside.
Yeah. Embedded OSes are niche enough that companies have a hard time employing people just to write code that doesn't immediately meet a project need, and coders have a difficult time getting hired on just to experiment with code.
Open sourcing the OS--the bread and butter of proprietary embedded companies--solves both of these as people who just want to play around can write code to meet their curiosity, and companies can take advantage of a larger labor pool.
Models like that grow much faster than models like Neutrino where it is highly restricted.
Don’t get me wrong, I think that IofT is a cool concept. What I was driving at is that most of the uC’s in use today just don’t have the horsepower to handle a TCP/IP stack AND perform the low level functions that a uC are designed for, if you threw in a OS. Use a Atmel AVR as an example. Could you cram all of that into 32kb of memory? You could do it with serial on a commodore or apple IIe (that makes me feel old just typing that).
The Arduino “shield” approach would work best I think. A uC to handle comm protocols, a uC to handle machine function, and serial eeprom to hold the OS, distributed processing. A trip through the manufacturers catalogs should reveal some nice gems to exploit. I think that after years of “wintel” software bloat, the newest crop of programmers are rediscovering the concept of “code efficiency”.
Yep. Just to date myself, I supervised a group in the 90s that used iRMX on Intel boxes, and then were one of the first to migrate to what was then called iRMX for Windows, later named InTime which is still supported by tenAsys that bought it from the Intel OMO group. It was very cool to be running Windows as a task and doing machine control with the PC hardware, but the PLC companies saw the threat and effectively rolled it into their offerings. Now the line is so blurry you just pick hardware that fits your needs and don’t worry about what’s inside.
“Key features of the Zephyr Project’s RTOS are said to include:
CPU architecture independent”
Then it should run on my PC? Bull pucky.
I am of the opinion that Minux3 would have been a better starting point.
Points all taken. I just think that the industry moves in some very consistent directions
- Make platforms easy to develop for.
- Memory is getting cheaper - expect more and more of it.
- Stuff is getting smaller - expect smaller and smaller packages.
- The SOC paradigm is a powerful one - expect more of it as well.
- With the containers paradigm there is also the trend towards same platform/environment everywhere which feeds back to #1 above.
Put all these together and this seems quite believable to me. It’s not the past but it could well be the future.
Neutrino likely exists as it was part of a major product that a major company I worked for put out.
Rpi and beaglebone are nice examples of cheap SoC compact computers. They’re prime examples of cheap and powerful single board computers. What I was pointing out with the microcontrollers though is cheap and efficient processing power for embedded comsumer product applications. Those types of applications don’t require an OS to function, a compiled program in native code to the processor is plenty enough.
Sure I get it. A toaster or a thermostat doesn’t need an OS and typically haven’t had them. But does this mean that we won’t ever get to that state? I don’t know that it does.
In particular the IOT concept where the device is sending sending TCP/IP packets to report on it’s state - an OS would give you the capability to easily do this. A simple C program - not so much.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.