BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Microsoft Open-Sources ThreadX and the Azure RTOS Development Suite

Microsoft Open-Sources ThreadX and the Azure RTOS Development Suite

Microsoft contributed Azure RTOS, including real-time OS ThreadX, to the Eclipse Foundation and made it available under the MIT license.

While ThreadX is likely not the best-known OS out there, it is deployed on over 10 billion devices, including Raspberry Pi, Qualcomm-based modems, and others, making it a mature RTOS. The open-sourcing of ThreadX under the MIT license could even bring a cascading effect on other closed-source, proprietary codebases that are used on those devices, for example the Raspberry Pi GPU blob, but this is just a matter of speculation right now.

In their announcement, the Eclipse Foundation highlights a few notable characteristics of ThreadX, including its maturity, scalability, and certification for functional security and safety under several international standards.

While there are other open source RTOS’s out there, none have all of the four attributes listed above. We are optimistic that, because of these attributes, ThreadX is going to rapidly expand its adoption in a wide range of use cases including aerospace, automotive, IoT, medical, transportation, automation, and consumer wearables.

Created at Express Logic, ThreadX was acquired by Microsoft in 2019 and integrated under the Azure RTOS umbrella. ThreadX supports priority inheritance, efficient timers, and both asymmetric (AMP) and symmetric multiprocessing (SMP), which ensures thread isolation through a memory management unit (MMU) or a memory protection unit (MPU).

ThreadX also includes more advanced features, like event-chaining and a new scheduling model, known as preemption-threshold scheduling.

Event-chaining enables linking multiple resources based on independent events, thus allowing for example to activate a thread that is suspended waiting for two or more independent resources as soon as one of them becomes available. Preemption thresholds may be assigned to tasks to improve their schedulability as compared to both preemptive and nonpreemptive scheduling:

Preemption threshold allows a task to only disable preemption of tasks up to a specified threshold priority. Tasks having priorities higher than the threshold are still allowed to preempt.

One key aspect of ThreadX is its scalability, which means that only the services used by an application are included in the final OS image. Indeed, thanks to its picokernel design, it can be really small, taking up a bare 2KB on an ARM architecture processor.

ThreadX is not the only option when it comes to choosing an RTOS. Popular competitors are WindRiver's VXWorks, Blackberry's QNX RTOS, AWS FreeRTOS.

The next steps after transitioning to Eclipse Foundation will include re-licensing the code and assigning the trademarks, with the goal of having the first ThreadX release under the new governance by the end of January 2024.

About the Author

Rate this Article

Adoption
Style

BT