“One ring to bring them all and in the darkness bind them.” – J.R.R. Tolkien, The Lord of the Rings
Monkey see, monkey do. Google acquired Android years ago and turned it into a hugely successful tool for embedded programmers. Now, Amazon has taken over FreeRTOS. Will it become the next Android, a de facto standard for real-time software that wipes all the other RTOSen off the map?
Or is our embedded world just too chaotic for that?
As the new name suggests, “Amazon FreeRTOS” is a company-specific version of an existing operating system called FreeRTOS. The original product still survives, but Amazon’s version includes cloud-connectivity hooks that the company created and will maintain going forward. You can still visit the original (and slightly amateurish looking) FreeRTOS website, to read all about its merits.
Amazon, for its part, has created a much more polished site that extols the virtues of its variation on FreeRTOS. The company talks about benefits, ease of use, connectivity, and upcoming features still in beta.
The original FreeRTOS is about 15 years old, and it’s popular among embedded programmers. It’s free to use, even in commercial products, and it’s all open-sourced. No big surprises there. Unlike with the familiar GPL license, FreeRTOS users aren’t required to publish or share their additions. Anything you tweak or add is yours alone. And, although you’re welcome to contribute your changes to the community, those alterations are kept separate from the FreeRTOS kernel, so paranoid users aren’t in any danger of unconsciously reusing someone else’s code.
Amazon now “owns” FreeRTOS, in the sense that the company will provide all support going forward. But support for an open-source project is a tricky thing. The original FreeRTOS site happily points out that most users never contact them for support anyway, so the responsibility for “factory” support is largely irrelevant, and the change in ownership shouldn’t affect most current FreeRTOS users.
Besides, you can’t really commandeer an open-source project; it lives on as much as its users want it to. Already, there are spinoffs of the original FreeRTOS in the form of SafeRTOS and OpenRTOS. If the user community wants to ignore Amazon FreeRTOS and stick with pre-acquisition FreeRTOS – or spin off yet another variation of it – they can.
Why would Amazon want its own free operating system? Why bother to acquire and manage an existing product that’s doing just fine without you, thank you very much? What does Amazon contribute, and more importantly, what does the company get out of it?
Here’s a hint from Amazon’s site: “Once Amazon FreeRTOS is deployed to your devices, you can securely connect them to cloud services like AWS IoT Core, or to a local edge device, and update them remotely using the OTA update feature (now in beta).”
A-ha. Amazon’s motivation is spelled AWS: Amazon Web Services, the enormously profitable cloud-services arm of the company. The RTOS itself may be free, but the service you’re prodded to connect it to isn’t.
For a certain class of devices, the RTOS itself isn’t the interesting or difficult part; it’s the cloud connectivity. Real-time operating systems are a dime a dozen, but cloud services are comparatively rare, expensive, and complicated. It’s one thing to set up a private server for a half-dozen devices, but quite another to manage a global network of thousands of devices. Most of us aren’t good at scaling up our own IoT cloud, so we pay other people for the privilege of using theirs. The cloud becomes the tail wagging the RTOS dog.
So… will Amazon FreeRTOS be the next Android? Will it become a real-time version of a free operating system supported by a huge company with massive coffers and a not-so-subtle method for eking out income from it?
It certainly looks the part. It’s free to use, like Android. It’s small. It’s popular and well supported. It comes with a network connection back to the mothership. And did we mention that it’s free? Could Amazon FreeRTOS grow to dominate the RTOS landscape the way that Android has, kicking all the other operating systems to the curb?
Nah. Not gonna happen.
For starters, there are an awful lot of other real-time operating systems. Too many to count, almost. Some large, some small. Some commercially supported, some little more than homebrew projects. Some have broad third-party industry support, while others are unknown outside of their own tight-knit community. But what they all have in common is active users.
Embedded programmers are, almost by definition, deeply technical programming aficionados. You don’t get into real-time programming because you feel like dabbling with “this coding thing.” You’re hardcore. Real-time programming – true real-time, not some Java code with same-day service – is tough and demanding, and it requires experience and technical know-how. And, once you’ve beaten and battered your RTOS into shape, you want to keep that hard-won knowledge. It’s your ticket to your next job. It’s what makes you irreplaceable. It’s what makes you good.
Don’t believe me? Let’s go check the data. The latest survey of embedded programmers shows that programmers overwhelmingly stick with the same operating system they used last time (slide #58). When asked why, they replied, “Why not?” (slide #59). There’s no compelling reason to switch from their current RTOS, so they don’t. And if they do switch, it’s usually because a big hardware change forced them to (slide #60). The second most popular reason? “It wasn’t my call.”
(Disclosure: I designed this survey when I was Editor-in-Chief of Embedded Systems Programming magazine, before it was acquired by its current owner, Aspencore.)
Operating systems, like microprocessors, are very “sticky.” Once we tease out their secrets, we want to leverage that knowledge and insight for the next project, and the project after that. It’s design reuse with professional skills. I’ve seen cases where the MCU and the RTOS never changed until the lead engineer retired from the company – or died. “You’ll have to pry my RTOS from my cold, dead fingers!”
Because RTOS loyalty is so strong, it’s hard to displace an existing one, even when a shiny new one comes into view. Embedded operating systems are rarely about glamour, sexiness, or even new features. They’re a means to an end; a technical solution to a specific problem. A carpenter doesn’t change his saw and plane just because new ones appear at the hardware store. A baker doesn’t give up her piping bag or mixing bowls. Programmers are both engineers and craftsmen, so their choice of tools is driven by both technical merit and skill. Unless the project – or the programmer – changes drastically, the tools won’t change, either.
I’m sure Amazon FreeRTOS is a lovely operating system, and I have no doubt that it’ll be a good fit for many thousands of happy programmers. But it’s just one more choice in a market that’s already awash in choices, all of them good. When a new restaurant opens up, the other nearby restaurants don’t all close abruptly. Amazon FreeRTOS is a tasty new option, but it’s not the only meal deal in town.
FreeRTOS is only a part of a tool offering from Amazon. As I wrote in December:
“AWS has a huge number of offerings for the IoT, including AI at the edge, and analytics, machine learning, etc. in the cloud. Clearly AWS want to make it easy for their users to design the edge devices, since, as well as announcing the Amazon FreeRTOS, they also announced that they are creating an ecosystem with the initial partners: Arm, Percepio IAR Systems (an embedded tools supplier) and Wittenstein high integrity systems, which offers the commercial versions of FreeRTOS, OpenRTOS, and SafeRTOS. SafeRTOS is a safety-certified version, being pre-certified to IEC 61508-3 SIL 3 and ISO 26262 ASIL D.”
They are adding extra libraries to FreeRTOS, not just sitting back.
However AWS is not aiming at the existing embedded community – although they see that as interesting – but are aiming at the huge number of companies who want to turn their existing devices in IoT things – the connected toaster for example. These people will be attaching to the cloud, and if they are attaching to AWS then if they use the ecosystem there is a possibility the software in their “Things” may not cause too many problems.
In your terms, they are not trying to be the Android of the RTOS world but the Android of the IoT.