The release of Amazon FreeRTOS generated considerable excitement in the IoT market. But outside of another victory for free and open-source software, what does this say about the overall direction of software engineering, if anything?
Richard Barry developed the original FreeRTOS kernel in 2003. The operating system (OS) was immediately successful as an alternative for microcontroller (MCU) vendors who preferred not to favor – or support – one commercial software platform over the myriad others.
For users, of course, the major benefit of FreeRTOS can be found in its name. Rather than building their software foundation from the ground up, FreeRTOS provides an open source option supported by 35 different processor architectures and a migration path to commercial-grade (OpenRTOS) and safety-critical (SafeRTOS) variants.
At its core, however, FreeRTOS remains a multi-tasking kernel that relies on other middleware to provide functionality beyond managing CPU resources. Over time, the open source community has therefore added functionality to the kernel through various APIs and modules, such as TCP/IP stacks. But perhaps the biggest boost for FreeRTOS came last year, when Amazon hired Barry and assumed responsibility for the OS. Shortly thereafter, Amazon FreeRTOS was announced.
Amazon FreeRTOS: Drivers and direction
Amazon FreeRTOS extends FreeRTOS through a litany of software libraries that help IoT devices securely connect to the cloud. These libraries include utilities for configuring devices to local Wi-Fi or Ethernet networks, over-the-air (OTA) update features, data encryption and key management, and connectors to AWS services such as Greengrass and IoT Core. A few minor tweaks (such as the addition of stream buffers) have been made to the original kernel so that integrating these offerings is more seamless. But, at the end of the day, Amazon FreeRTOS is essentially still FreeRTOS.
According to Roy Murdock, Analyst for IoT and Embedded Technology at VDC Research, Amazon’s selection of FreeRTOS over other commercial and open source options came down to numbers. “The driving factor for Amazon is they really want to get into as many sockets as possible,” Murdock says.
“In terms of unit share, [FreeRTOS is] definitely one of the leaders in the market right now. It’s in the top five of the OS distributions that we track,” Murdock continues. “We do see sustained growth for FreeRTOS, and we tag that around the growth rate of the MCU market, which is approximately 8 percent over the next five years.
“Amazon went with FreeRTOS because they don’t need to make any money,” he says. “They don’t need to have a commercial OS provider in the space. For them, it’s not about the margin; it’s not about generating revenue from licensing an OS.”
As mentioned, one factor that has propelled FreeRTOS to its current market position is broad adoption amongst industry vendors. For instance, FreeRTOS (and subsequently Amazon FreeRTOS) is supported by Microchip’s PIC32MZ EF family of MCUs and its corresponding MPLAB software ecosystem. MCU-agnostic development tools like IAR Embedded Workbench also provide RTOS Awareness plugins that help tune the environment to FreeRTOS-specific variables.
Open source challenges for a new breed of developer
Despite the advantages of FreeRTOS, it still comes with drawbacks for developers simply because of its open source nature. Indeed, there are reasons that commercial RTOSs still exist, and chief among these is probably support. TCP/IP stacks, for example, can be complicated to bring up on resource-constrained IoT devices due to their limited amount of RAM. Beyond that, integrating large amounts of external code into an application that must be managed over time is a common oversight in early stages of development that can be costly during production.
Still, as one RTOS industry expert states, “downloading ‘stuff’ from the Internet … is probably the new normal.” And given the growing number of non-embedded app developers entering the IoT, there is bound to be a learning curve.
Hugo Fiennes, CEO and Co-Founder of IoT platform and services company Electric Imp, cautions this type of engineer that “If you’re paying, you get support. If you’re not, you’re on Stack Exchange and forums trying to figure things out.” Referencing a blog post on the challenges of simply managing a git repository, Fiennes stresses the need for these developers to “focus on the value of connected applications versus fixating on the technology. The ‘why’ versus the ‘how.’” To enable this mindset, Electric Imp offers what Fiennes calls a “managed OS.”
“The key advantage of a managed OS is it being managed [by a third party],” Fiennes says. “This means a customer can write and ship their application on top of impOS, and when it is feature-complete and debugged they can essentially abdicate responsibility for ongoing maintenance and patching. This allows them to work uninterrupted on future products.
“On our side, we maintain a single version of impOS that runs on every target and within every customer device,” he continues. “We run literally thousands of individual system tests on our platform constantly and monitor for regressions in functionality, performance (both latency and power), and memory to ensure we are maintaining our API contracts with our users. This extensive automated testing also gives us confidence that we can quickly develop and deploy patches to ensure the security of our customer’s devices.
The impOS provides a cloud-based virtual machine (VM) that runs application code, which decouples customer software from hardware and basic utilities. Using security as an example, Fiennes notes that Electric Imp migrated their platform from TLS 1.0 to TLS 1.2 Elliptic-Curve Diffie-Hellman (ECDH) cryptography a couple of years ago without customers having “to lift a finger.”
“It’s certainly true that traditional developers are uncomfortable with the idea of an OS that essentially provides a Linux-like userspace for their code, abstracting away all hardware access through its APIs,” Fiennes says. “However, the world has changed with IoT. Do we really expect every company, however big or small, to develop their own security infrastructure? Is every team going to be given the time and money to do things right from the start and still be able to produce updates for decades-old products when the next Heartbleed or KRACK is discovered? Do they want to go through UL 2900-2-2 cybersecurity certification for every product, or would they prefer to leverage a platform’s certification?”
A new approach to development
Companies like Amazon and Electric Imp are embracing the reality that the engineering world of today is more about solutions than technology. As infrastructure companies this means they must address each level of the IoT solutions stack, from devices to the cloud.
In the case of Amazon, Murdock realizes that the company’s stewardship of FreeRTOS means there is no software left for them to acquire. As a a result, there is only one place left to go.
“The next step [for Amazon] if they want to go further down the chain is to get into hardware,” Murdock says. “That’s something that you would think to yourself, ‘Why would a company want to get into hardware with all this consolidation going on and margins shrinking?’ But Amazon doesn’t care about any of that, do they? They just want to control everything, from the bottom to the top of the stack.”
In memory of James Ready
7-29-49 – 12-21-17
This article is dedicated to Jim Ready, Founder of Ready Systems and MontaVista Software; pioneer of embedded and real-time Linux; and arguably the progenitor of commercial real-time operating systems.
One of Jim’s mantras was “You never stop learning.” This belief is evident in his countless contributions to open source, embedded, and networking software that so many of us take for granted. His innovations will be leveraged further into the future than we can imagine. And with them, his memory.eletter-02-07-2018 eletter-02-06-2018
About the Author
Brandon is responsible for Embedded Computing Design’s IoT Design, Automotive Embedded Systems, Security by Design, and Industrial Embedded Systems brands, where he drives content strategy, positioning, and community engagement. He is also Embedded Computing Design’s IoT Insider columnist, and enjoys covering topics that range from development kits and tools to cyber security and technology business models. Brandon received a BA in English Literature from Arizona State University, where he graduated cum laude. He can be reached by email at firstname.lastname@example.org.Follow on Twitter More Content by Brandon Lewis