Top IoT Operating Systems and Microsoft
Last week, Microsoft announced a new IoT operating system, called Azure Sphere OS, that targets very small constrained devices. It is part of the new Azure Sphere offering that targets a complete solution for IoT security.
Microsoft now enters a crowded market of open source RTOS that target constrained devices, including FreeRTOS, Contiki, RIOT-OS, Zephyr, Mbed, plus others. It will be interesting to see how Microsoft’s RTOS will compare to the existing RTOS and how well they do building an open community. It doesn’t appear Microsoft has made Sphere OS available but here are how the others are doing.
Synopsis of each RTOS
- FreeRTOS has been around for over 14 years and ported to 30+ MCU platforms. Last year Amazon took over the stewardship of the project and created the Amazon FreeRTOS offering. The Amazon version of FreeRTOS is available under the MIT license.
- Contiki was originally created by a company called Thingsquare. It seems like there is a fork of Contiki, called Contiki-NG. Development on the main Contiki github repo appears to have stopped mid last year. Contiki is available under a BSD license. [UPDATE: Contiki was created before the creation of Thingsquare. I more accurate history is described on the community page.]
- RIOT-OS is supported by Freie Universität Berlin, by INRIA, and by Hamburg University of Applied Sciences. RIOT started in 2013 and is available under GPL v2.
- Zephyr is based on the Wind River VxWorks kernel. It is a Linux Foundation project that includes members from Intel, Linaro, NXP, and others. Zephyr is available under the Apache 2.0 license. [UPDATE: An astute reader pointed out that Zephyr is not based on the commercial VxWorks OS but another code base that is refered to as VxWorks Microkernel Profile for VxWorks on the Zephyr web site. Wikipedia confirm this too.
- Mbed was started and is still controlled by ARM. Mbed is available under the Apache 2.0 license.
- TinyOS is a project started in UC Berkley. Their web site was down and it does look like there is active development in the github repo. TinyOS is licensed under a BSD license.
- MyNewt is an Apache project started in 2015. that was started and maintained by a startup called runtime.io. MyNewt is licensed under Apache 2.0
- LiteOS was started and is still maintained by Huawei. LiteOS is licensed under a BSD license.
Community Popularity
It is always difficult to determine popularity of open source software. I always tend to recommend to look for a variety of data points to discover industry trends.
First data point is the Eclipse IoT Developer Survey, which just announced the 2018 results. One of the questions in the survey is about what operating system was being used for constrained devices. Linux is clearly the preferred choice. I imagine people are creating their own distros for a specific device. No RTOS and FreeRTOS are the clear second choice. Interesting to see Windows on this list. The other RTOS are distant choices.
Second data point, is to look at the communities that have developed around some of these RTOS. First, let’s look at the popularity of these open source projects on github. Contiki definitely seems to be the most popular RTOS when looking at Watch, Stars and Forks. However, mbed and Zephyr seem to be receiving contributions from a wider community. NOTE: FreeRTOS has just been moved from SourceForge to github when Amazon took it over.
Quick Analysis
Microsoft and AWS are clear competitors in the IoT space. MS announcing a RTOS could be viewed as a competitive response to AWS takeover of FreeRTOS.
FreeRTOS would appear to be the most popular and I presume the most widely used. However, since Amazon took over the project it seems the development work is no longer in the open: 7 commits since last November, 2 people contributing code; 5 PR opened. There is still FreeRTOS on SourceForge but that doesn’t look very active either. How Amazon continues the development of FreeRTOS is something to watch.
In the past number of years, Microsoft has definitely demonstrated they understand and value open source communities. Microsoft creating an open community for Azure OS might be a competitive strength when compared to AWS.
ARM mbed and Zephyr appear to be creating a successful open source communities. It is impressive to see the number of contributors to the project. Over the next couple of years I would expect to see adoption increase for both these RTOS. Microsoft will target ARM based chipsets so they might see competition with mbed and Zephyr.
Overall, Microsoft entry into the RTOS space is more about providing a security solution for their IoT customers. It is interesting they decided to build their own RTOS, instead of partnering or collaborating with the mbed or Zephyr projects. Microsoft and AWS seem to be taking an approach to providing one end-to-end integrated IoT stack. This might provide customers with an integrated solution but in the long-term it is a step towards vendor lock-in.