Over a year ago, Microsoft acquired Express Logic and their flagship product the ThreadX Real Time Operating System (RTOS). Along with ThreadX was the X-Ware suite of communication, connectivity and storage IPs. Microsoft has since created Azure RTOS around ThreadX and X-Ware, with an obvious focus on connectivity and IoT.
Looking back, the acquisition of one of the leading RTOS providers by an enterprise software and cloud company wasn’t unexpected, but it was unusual from the point of view of industry veterans. Historically, semiconductor manufacturers were the players interested in the acquisition of embedded software vendors. We can remember for example the acquisition of Micrium and the uC/OS RTOS by Silicon Labs or if we go back a bit further the acquisition of MQX by ARC. True to that trend, semiconductor companies were also the most eager to partner with RTOS vendors for instance Renesas selecting Express Logic’s portfolio to develop the Renesas Synergy platform.
That trend changed somewhat with the rise of interest in connected devices and more specifically the Internet of Things (IoT). IoT brought an incentive for enterprise cloud companies to get closer to the edge. Akin to semiconductor vendors wanting a more complete software and hardware solution for their customers, cloud companies are now searching to provide a more integrated, more seamless solution to bridge the gap between the edge and the cloud. One example of this change of trend was Amazon taking FreeRTOS under its wing and integrating it as part of AWS.
And now we are back at the acquisition of Express Logic by Microsoft. The goal of Microsoft was obviously to create an ecosystem around ThreadX and X-Ware to provide a straightforward and secure integration with Azure IoT cloud services. Let’s now take a closer look at Azure RTOS and the software components that are part it.
Express Logic ThreadX
At the core of Azure RTOS is ThreadX a very lightweight, preemptive real-time kernel for resource constraint applications. Since long before the acquisition by Microsoft, ThreadX enjoyed a considerable popularity for safety-critical systems and has a long list of certifications. This last feature makes it rather unique when comparing it with many other IoT RTOS. It is also important to note that most of the other components of X-Ware, and now Azure RTOS, also possess those safety certifications.
Along with ThreadX, there is also ThreadX SMP available for multi-core platforms. ThreadX SMP is especially useful when targeting a multi-core application class SoC such as the NXP i.MX or Xilinx Zynq.
From X-Ware to Azure RTOS
Around ThreadX, Express Logic developed a compete set of IPs, often called stacks, to provide TCP/IP and USB connectivity, GUI, and a file system for mass storage. With the rise of IoT, Express Logic branded their entire portfolio as a complete solution named X-Ware. One could say that X-Ware became Azure RTOS with ThreadX at the centre and the various protocol stacks and file system around it.
Let’s take a look at those components, focusing on what makes them unique in the industry.
NetX Duo
NetX Duo is a dual IPv4 and IPv6 TCP/IP protocol stack for Ethernet and Wi-Fi connectivity combined with a large number of supported protocols. Those protocols include MQTT, COAP, HTTP, LWM2M for IoT applications as well as many traditional protocols such as FTP, SMTP, POP3 and so one. Apart from the usual performance and footprint advantage, it also includes native TLS support named NetX Secure, a unique feature as many embedded TCP/IP stack relies on third-party libraries for security.
FileX and LevelX
FileX is a FAT compatible embedded file system. In addition to the support for FAT12, FAT16 and FAT32 it also supports exFAT. exFAT is especially interesting when using high capacity removable storage such as SD Cards or USB Drives. FileX also has an optional fault-tolerant feature using journaling to prevent file system corruption when faced with sudden power loss. By itself it can support most managed Flash devices such as SD Card, eMMC and USB mass storage devices. The later with the help of USBX. Furthermore, Azure RTOS also include the LevelX Flash Translation Layer (FTL) that goes in pair with FileX to handle raw NOR and NAND flash memories.
USBX
USBX is a set of protocol stacks that supports USB Host, USB Device and OTG. One of the important set of features of USBX is the considerable quantity of host and device classes supported. In fact, it is one of the richest sets of classes available for an embedded USB stack. Including not only the usual CDC/ACM, HID and Mass Storage but also printer, RNDIS & CDC/ECM, Audio, DFU and more. Networking support is provided in combination with NetX, while leveraging FileX for mass storage.
TraceX and GUIX and Other Bits
The ThreadX kernel and many of the protocol stacks have native tracing support through TraceX that can be visualized using a PC application. There is also a low footprint GUI named GUIX along with another PC application GUIX Studio to help design the user interface. Finally, a lot of third-party tools and libraries are compatible with ThreadX including many debuggers and IDE offering kernel awareness.
So What Changed?
Well, from a technical perspective not much, Azure RTOS is ThreadX with all its feature and hopefully coupled with a growing integration with Azure Cloud. What did change, however, is the licensing and distribution model. First, which is an obvious difference, the code is available on Github. The code being available on Github doesn’t mean it’s completely free and open source however. The way it works now is that usage of Azure RTOS within a product is permitted, for free, on licensed hardware. Those licences are negotiated between Microsoft and semiconductor manufacturers and at the time of writing includes Renesas and Microchip with others to come. Developers who wish to use Azure RTOS on other hardware can get a licence from Microsoft at an affordable yearly fee which also includes support directly from Microsoft.
What’s Next?
At this point in time what we can expect is the Azure RTOS ecosystem to grow significantly. Especially around new semiconductor and hardware manufacturers joining the ecosystem. It will also be interesting to see what semiconductor and hardware manufacturers will do in terms of integrating Azure RTOS within their software ecosystem.
On our end you can expect additional news and articles centred more on our products and services and what we can bring to the Azure RTOS ecosystem.
Questions or comments?
Do not hesitate to contact us. Your questions, comments and, suggestions are appreciated.