Skip to content
Gotta catch 'em all

Microsoft buys Express Logic, adds a third operating system to its IoT range

ThreadX joins Azure Sphere, Windows 10 for IoT.

Ars Staff | 45
Different-colored rolls of thread are lined next to each other.
Multi-threading. Credit: Jamie Golden / Flickr
Multi-threading. Credit: Jamie Golden / Flickr

Not content with having a Windows-based Internet of Things platform (Windows 10 IoT) and a Linux-based Internet of Things platform (Azure Sphere), Microsoft has added a third option. The company has announced that it has bought Express Logic and its ThreadX real-time operating system for an undisclosed sum.

Real-time operating systems (RTOSes) differ from more conventional platforms in their predictability. With an RTOS, a developer can guarantee that, for example, interrupt handling or switching from one process to another takes a known, bounded amount of time. This gives applications strong guarantees that they'll be able to respond in time to hardware events, timers, or other things that might make an application want to use the CPU. This predictability is essential for control applications; for example, ThreadX was used in NASA's Deep Impact mission that hurled a large object at a comet. ThreadX was also used in the iPhone 4's cellular radio controller, and ThreadX is embedded in the firmware of many Wi-Fi devices. These tasks need the determinism of an RTOS because there are timing constraints on how quickly they need to respond.

Linux can be built with various options to offer more predictable behavior and so can address some similar scenarios. But ThreadX has another big advantage up its sleeve: it's tiny. A minimal ThreadX installation takes 2,000 bytes of storage and needs 1KB of RAM, far less than Linux can use. By way of comparison, Microsoft's Sphere hardware (which uses a custom-designed ARM processor with various security features embedded) has 4MB of RAM for applications and 16MB of storage. There are an estimated 6.2 billion deployments of ThreadX running on several dozen different kinds of processor or microcontroller.

Microsoft's intentions for ThreadX cover two scenarios. The first scenario is ThreadX running alongside the custom Linux distribution, giving a real-time capability for those parts of an application that need it, alongside the Linux environment for the non-critical parts of the application. For the second scenario, some IoT devices will be simply too small for Sphere, so they will run ThreadX directly.

Whichever style of deployment is used, Microsoft's sales pitch for its IoT/embedded platforms is, in many ways, not the endpoint operating system at all but, rather, the integration with Azure. The devices can securely connect to Azure IoT Hub, Microsoft's cloud service for monitoring and managing IoT devices. With this, operators of IoT devices can securely deploy firmware updates, quickly detect devices that have failed in some way, or examine logs and reports.

With ThreadX as part of its arsenal, Microsoft supports a much wider range of devices to connect to Azure IoT Hub. It also shores up Microsoft's IoT platform when compared to Amazon, giving Microsoft a direct competitor to Amazon FreeRTOS.

45 Comments