The Linux Foundation is a non-profit organization that sponsors the work of Linus Torvalds. Supporting companies include HP, IBM, Intel, and a host of other large corporations. The foundation hosts several Linux-related projects. This month they announced Zephyr, an RTOS aimed at the Internet of Things.
The project stresses modularity, security, and the smallest possible footprint. Initial support includes:
- Arduino 101
- Arduino Due
- Intel Galileo Gen 2
- NXP FRDM-K64F Freedom
The project (hosted on its own Website) has downloads for the kernel and documentation. Unlike a “normal” Linux kernel, Zephyr builds the kernel with your code to create a monolithic image that runs in a single shared address space. The build system allows you to select what features you want and exclude those you don’t. You can also customize resource utilization of what you do include, and you define resources at compile time.
By default, there is minimal run-time error checking to keep the executable lean. However, there is an optional error-checking infrastructure you can include for debugging.
The API contains the things you expect from an RTOS like fibers (lightweight non-preemptive threads), tasks (preemptively scheduled), semaphores, mutexes, and plenty of messaging primitives. Also, there are common I/O calls for PWM, UARTs, general I/O, and more. The API is consistent across all platforms.
You can find out more about Zephyr in the video below. We’ve seen RTOS systems before, of course. There’s even some for robots. However, having a Linux-heritage RTOS that can target small boards like an Arduino Due and a Freedom board could be a real game changer for sophisticated projects that need an RTOS.
Important correction: Zephyr is not Linux. It is a completely different kernel. The Linux Foundation hosts a lot more than just Linux projects these days.
Hmmm, Zephyr supports Linux as the Cloud in an IoT system. So, Zephyr seems to build a custom RTOS for the “IoT thing” that is then able to SECURELY connect the Zephyr generated RTOS to the Linux cloud. (Am I right or am I right?)
Very well managed site with code review and a sandbox built out. This is the best thing to happen to embedded development since sliced bread.
Sliced bread ’cause you need that to eat s’namiches when developing embedded systems.
I’d struggle to call any ring-0 RTOS (which this appears to be) secure, at least at the local execution level. Your system would go down from one failing process, and malicious code could dump all stored memory.
That said, I really like the idea.
Zephyr is NOT for IoT. it only works on x86 and ARMv7. if you want are real OS for the IoT, try ChibiOS or Contiki as together they cover just about any platform you can think of.
I admit that I haven’t looked into the documentation but the press release says that there is support for the NXP FRDM-K64F Freedom board which uses an ARM Cortex M4. Besides, what does the target processor architecture have to do with the types of application that the system is optimized for? To me IoT OS should have solid networking support built in. Ethernet stack, Bluetooth stack, WiFi drivers, and support for other channels of communication that enable an IoT device to talk to the rest of the world.
Hopefully this will put working with the internet of things into the hands of hackers who will help it reach its potential, because as it stands this whole concept of everything linked looks to me like a solution in search of a problem.
“solution in search of a profit” There I fixed it for you.
Works out to the same thing.
+1 [DougM] !
Zephyr only works on x86 and ARMv7. if you want a real IoT OS, check out https://en.wikipedia.org/wiki/ChibiOS/RT and https://en.wikipedia.org/wiki/Contiki
Zephyr only works on x86 and ARMv7. if you want a real IoT OS, check out ChibiOS/RT and Contiki
For a RTOS ChibiOS and FreeRtos are great. Brad Land also has a lean RTOS developed by students and enhanced by him on Hackaday.io. This is RTOS for IoT devices.
You forgot ARC (made by Synopysys). Zephyr is designed to be portable, so it won’t be long before others are supported.
It’d be great to see an esp8266 port, for example.
Stop spamming. There are tons of RTOSs.
iot, arduino, raspberry pi, linux, etc. are boring as hell…
and this is a shame, because otherwise we can see many nice hacks here
I have no idea of what you are trying to say. Seems you said you think everything is boring, so why you here?
The robot os link is for ROS, a realy non real time framework…
When talking about RTOS there’s a link to a page talking about ROS (Robot Operating System), but ROS isn’t a real time operating system. It is a collection of software frameworks that run on top of an operating system. It is usually ran on Ubuntu which is not real-time. I think I’ve heard the future ROS 2.0 will have some real-time support though.
Why should we listen to Intel on this front? Edison was supposed to be the “chosen one”, that would save the whole world. But then Intel released it with no video support, and using yocto linux, making it super inaccessible, limited, and hard to work with.
“Arduino Due”
Apparently Arduino are thinking of dropping the Due.
Yes, but Arduino will continue to produce it. Isn’t it amazing? Moreover, remember about clones army.
No impressions of the RTOS itself yet, but I have to say setting up the development environment *on Linux* is ironically pretty ugly here. Downloads of massive binary blob installers full of toolchains, etc. which then spew themselves about your filesystem, defaults and the guide only covering system-wide installation, environment variables everywhere.
The mbedOS system is much more impressive and Linux-friendly in this respect, shoving all that spaghetti into docker containers, and a single “git command”-style entrypoint (with a single host-side shell script to make calling the “docker run” command more streamlined). That not only “contains” all the mess, but also makes the initial install and future upgrades easy, one-command affairs (docker pull mbed/yotta).
mbedos comes across as being much more aware of how Linux is used in 2016 than this 1990s-esque view. The weird part is I can see how Zephyr’s system would make it easier to port the environment to Windows, yet mbedos is the only one that supports Windows at the moment. OTOH, I can see how the Zephyr approach of everything being in the host’s filesystem could be easier to use with the standard Makefile-style build process, vs. mbedos’s custom build system, and I can see the appeal of that.
If anything keeps me away from Zephyr it looks like it will be the build environment.
I love how they claim in the video that it will run on LEDs.
Whoa! Really! I HAVE got to watch that video!
B^)
The Linux Foundation might be a non profit organization on paper, but what they did recently shows quite the opposite: they only care about corporate interests.
http://www.zdnet.com/article/linux-foundation-leadership-controversy-erupts/
http://www.theregister.co.uk/2016/01/25/linux_foundation_scraps_individual_membership/
Yeah, it is disappoint to always see them referred to as a “non-profit organization” in the press, which might be technically correct but I think most people read that (incorrectly) as a “charitable organization”. Which is probably why so many people were surprised to see them acting in that way. A more accurate description of The Linux Foundation, of course, is “an industry trade group”.
It doesn’t look like the macro hell that FreeRTOS and ChibiOS are.
Seems a bit premature to me – the only comms stack appears to be Bluetooth which would make connecting a thing to the Internet somewhat trickier than it needs to be.
Given I can run a bang up to date Linux Kernel with all the popular network protocols and hardware support on 5 bucks worth of ARM SoC, I’ll be sticking with that and separate bare-metal for any real time requirements for now.
I don’t care about IoT, The nanokernel and readable code are what caught my eye.
Talking about RTOS for embedded systems, what ever happened to QNX?
It was the future for everything when Neutrino was released for free to developers, but then they changed the policy or something…
I used to run it as a desktop OS on a spare computer, I had some issues and joined their supportchat on IRC to ask some questions and got to talk to a lot of nice people from the company (and a lot of other users/developers)
It turned out to be the computer my kids used, and they also chatted with the people in the IRC, one was involved in Robotwars, and my kids loved that show on TV…
They were a bit suprised that some kid, not natively speaking english was chatting with them about robotwars :D
Bought by Black Berry, so probably going nowhere
I think all the new Ford and Toyota cars will be running QNX.
I don’t get it. The controllers supported seem to all have MMU’s. So why bother with this quasi-RTOS thing? Just use an OS with a real multi-tasking scheduler, like a lean version of Linux or xBSD.
This supports cortex M4 parts (like the Freescale K64) which has no MMU. It does, however, have a Memory Protection Unit (MPU) which is similar but doesn’t manage virtual memory. Zephyr, to by knowledge, doesn’t actually use the MPU anyway.
Seems it’s not a new OS, it’s basically a RTOS Wind River aquired, transferred to the Linux Foundation to develop as an open-source project: http://www.eejournal.com/archives/articles/20151125-windriver/
Completely WRONG!!!
“However, having a Linux-heritage RTOS that can target small boards like an Arduino Due and a Freedom board could be a real game changer for sophisticated projects that need an RTOS.”
Zephyr is based on Wind River RTOS kernel and Linux Foundation is releasing it just for pressure from Intel because it run on Intel hardware.
If you want a RTOS with “Linux-heritage” then use NuttX
Looking at the doc it seems that this is a kind of FreeRTOS copy
Don’t know the purpose of these guys, FreeRTOS already do (well) the job.
Looks like Zephyr is trying to do all the things that mbedOS is trying to do. Great the more RTOS’s available under open source licenses the better!
heh. “Zephyr” is apparently also a “test managment system/company”; it took me a few minutes to figure out that the youtube video I get chained to was talking about something completely different!
I need to look at this more carefully; I’ve been thinking that “we” need something heavier that freeRTOS/etc, but lighter than linux…
“real time” linux flavors are definitively not an option as RTOS on microcontrolers (CORTEX-M and all the small 8-16-32-bits µC).
There are a bunch of RTOS for these devices, among them FreeRTOS.
What do you mean by heavier that FreeRTOS ?