Microsoft opens sources ThreadX under MIT license
- Reference: 1701169558
- News link: https://www.theregister.co.uk/2023/11/28/microsoft_opens_sources_threadx/
- Source link:
The vendor has made its ThreadX RTOS, and the Azure RTOS development suite that includes it, open source. The company has [1]contributed Azure RTOS to the stewardship of the Eclipse Foundation, where it will be [2]known as Eclipse ThreadX and available under the permissive MIT licence.
Although there are many Real-time OSes – RTOS for short – out there, you generally don't hear much about them. You may never have heard of ThreadX, but there's a fairly good chance that you unwittingly have several copies lying around or even running right now.
[3]
There are more famous RTOSes, such as Wind River's VxWorks: it's running on Mars, inside [4]NASA's Perseverance Rover for example. Blackberry's QNX RTOS, which we called [5]the money-making part of the business , has been in the spotlight twice: once as [6]the basis for RIM's Blackberry X fondleslab and smartphone range, but back in the 1990s for the amazing QNX [7]single-floppy demo disk .
[8]
[9]
ThreadX was quite pervasive, though. Microsoft claims 12 billion devices run it, and you might own some of them. For a while it powered [10]Intel's on-chip Management Engine . It is also the firmware that controls every Raspberry Pi bigger than the Pi Pico. On the Pi 1, 2 and 3, it's [11]the file on your Pi's SD card called bootcode.bin ; in the Pi 4 and 400, it's called start*.elf . Even though it's [12]on GitHub and [13]included in Debian , it's a proprietary "blob" ( B inary L arge OB ject). It's a metaphorical sealed black box which doesn't even contain Arm code: instead, it runs on the Pi's VideoCore GPU. This is the primary device, the part that boots up the Pi and controls its hardware: the Arm cores are [14]slave devices to the VideoCore GPU.
Ah lovely, here's something you can do with those Raspberry Pis, NUC PCs in the bottom of the drawer: Run Ubuntu Appliances on them [15]READ MORE
This, incidentally, is why Xen only runs on the Pi 4 and later: they were the first versions where the Arm cores had their own interrupt controller, and even so, [16]it took some work . We have read that in the Pi 5, it's in EEPROM and does even less, meaning that the Arm cores have more control, as this [17]Reg comment bears out.
As soon as this innocent little OS turned 21 in 2019, Microsoft grabbed it, [18]acquiring ThreadX owners Express Logic and rebranding the poor thing as Azure RTOS , which hasn't done any favours for its brand awareness. The purchase came soon after [19]AWS took over stewardship of FreeRTOS , and some observers, such as [20]this commenter on Reddit , claim that the deal was a response to Amazon's move. After the purchase, original developer William Lamie left, starting a new company which sells a "fifth-generation" RTOS with POSIX-compatible threads, called [21]PX5OS .
Even so, ThreadX is a tested and established product; some parts even have [22]TÜV Functional Safety (FuSa) certification, such as the [23]STM32 version [PDF]. That kind of thing is powerfully attractive to some customers.
[24]Python head hisses at looming Euro cybersecurity rules
[25]Open-source IDE NetBeans hits v13 – tweaks for Gradle, Maven
[26]Eclipse Data Connector arrives for GAIA-X, Europe's plan to protect its cloud data from foreign tech firms
[27]Everything OK with Microsoft? Windows giant admits it was 'on the wrong side of history' with regard to open source
At this point, only the current version [28]is on GitHub , and we don't see any trace of a VideoCore version. Although the GPU drivers have [29]long been open source , the firmware never was, and attempts to write [30]an independent FOSS version were never completed, for [31]reasons explained on the project page. Now, there is at least some hope that the Raspberry Pi Foundation might be able to get permission to release the source code for its version. As of last year, the foundation had [32]sold over 46 million of the things, and if the whole software stack were open source, that would make them even more appealing for a lot of people. ®
Get our [33]Tech Resources
[1] https://techcommunity.microsoft.com/t5/internet-of-things-blog/microsoft-contributes-azure-rtos-to-open-source/ba-p/3986318
[2] https://eclipse-foundation.blog/2023/11/21/introducing-eclipse-threadx/
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZWYctVJR4tTuIkjx2iuAfgAAAFM&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://www.theregister.com/2021/02/23/perseverance_landing_video/
[5] https://www.theregister.com/2015/02/18/qnx_hypervisor/
[6] https://www.theregister.com/2010/09/28/blackberry_tablet_runs_qnx/
[7] http://qnx.puslapiai.lt/qnxdemo/qnx_demo_disk.htm
[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZWYctVJR4tTuIkjx2iuAfgAAAFM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZWYctVJR4tTuIkjx2iuAfgAAAFM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[10] https://www.theregister.com/2017/05/01/intel_amt_me_vulnerability/
[11] https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/configuration/boot_folder.adoc
[12] https://github.com/raspberrypi/firmware
[13] https://packages.debian.org/sid/raspi-firmware
[14] https://raspberrypi.stackexchange.com/a/106077/125748
[15] https://www.theregister.com/2020/06/18/ubuntu_raspberry_pi/
[16] https://xenproject.org/2020/09/29/xen-on-raspberry-pi-4-adventures/
[17] https://forums.theregister.com/post/reply/4735439
[18] https://www.theregister.com/2020/05/21/microsoft_build_iot/
[19] https://www.theregister.com/2018/10/22/freertos_iot_platform_security_flaws/
[20] https://www.reddit.com/r/embedded/comments/181g1nk/comment/kae4gi2/?utm_source=reddit&utm_medium=web2x&context=3
[21] https://px5rtos.com/about/
[22] https://www.tuvsud.com/en/industries/mobility-and-automotive/automotive-and-oem/iso-26262-functional-safety/iso-26262-functional-safety-certification-programme
[23] https://www.st.com/resource/en/product_presentation/stm32_stm8_functional-safety-packages.pdf
[24] https://www.theregister.com/2023/04/12/python_management_eu/
[25] https://www.theregister.com/2022/03/08/netbeans_13_arrives/
[26] https://www.theregister.com/2021/09/23/gaia_x_edc/
[27] https://www.theregister.com/2020/05/15/microsoft_brad_smith_open_source/
[28] https://github.com/azure-rtos
[29] https://www.theregister.com/2012/10/24/raspberry_pi_broadcom_soc_drivers_now_fully_open_source/
[30] https://github.com/christinaa/rpi-open-firmware
[31] https://github.com/christinaa/rpi-open-firmware/issues/37
[32] https://www.theregister.com/2022/02/28/pi_at_10/
[33] https://whitepapers.theregister.com/
I'm all for Borkzilla-bashing, and I never miss a golden opportunity to do so (or even a copper one), but we might need a little bit more history of this RTOS before blaming Borkzilla for burying it ?
I mean, I'm sure Borkzilla will bury it, but maybe we could give it some time ? It's such a tiny thing, it is possible that might fly under the Embrace-Extend-Extinguish monster that is lurking in Redmond for little while longer ?
Maybe ?
[Author here]
> a little bit more history of this RTOS before blaming Borkzilla for burying it ?
Um. It's not buried it -- it's just dug it up and let it go.
And I gave what history I could...
It's all a bit puzzling. TFA seems to imply that ThreadX was something that MS found themselves with, but didn't really need, as a consequence of buying Express Logic. That they might then open source it and shuffle it off to a foundation seems reasonable although very un-Microsoft-like behaviour.
But AFAICS from a quick search ThreadX was EL's only product. In that case what did they think they were acquiring? Was it just the development team? Is there some other product? Was the whole thing just a mistake by the M&A department - you know how it is, you get to the checkout and then find you picked up the box next to the one you intended.
> TFA seems to imply that ThreadX was something that MS found themselves with, but didn't really need, a
Does it? Because I wrote TFA and I did not mean that or think that or intend to imply it. Which doesn't mean I didn't do it by accident, of course.
No, MS wanted it -- I don't know why or what for -- bought the company, but the founder and original programmer up and left and started a rival company which now offers a more sophisticated rival product.
FWIW ThreadX isn't his first; that was Nucleus, some 4Y before ThreadX came out.
Although MS claims 12Bn licences to "just" 3Bn for PX5, the latter sounds quite healthy to me.
If it found that it was a played-out market with no more money to be made, making it FOSS seems like a good plan.
Although MS claims 12Bn licences to "just" 3Bn for PX5, the latter sounds quite healthy to me.
I'd think it very healthy if I had sold 3bn software licences, even at £1 each.
> That they might then open source it and shuffle it off to a foundation seems reasonable although very un-Microsoft-like behaviour.
That's (more or less) how Microsoft killed Netscape.
I mean, I'm sure Borkzilla will bury it,
They've just put the code on [1]github , and according to the Eclipse foundation will subsequently be re-licencing it under the [2]MIT licence.
The current licence forbids you from [3] creating a competing product , which you will be allowed to do once it's re-licenced.
That doesn't seem like burying it?
[1] https://github.com/azure-rtos/threadx/tree/master
[2] https://opensource.org/license/mit/
[3] https://github.com/azure-rtos/threadx/blob/a8e5d0946c31385ff97bb27b67b2cdd905b9a58b/LICENSE.txt#L76C1-L76C1
What are they trying to break
Was the first thought that came to me.
Anyway, of itself somewhat good.
Before the flood...
Just a quick FYI. The version of ThreadX used on the Raspberry Pi is from before the MS buyout, on an indefinite licence AIUI. Although the conspiracy theory nutters will claim otherwise, MS have never had any influence on the RTOS used on the Pi.
I cannot see that MS making it MIT will have any effect on the OSS or not nature of the Pi firmware.
Re: Before the flood...
I don't know if you are the same AC who posted about ThreadX on the Pi last time. I linked to that comment in TFA but just in case, this one:
https://forums.theregister.com/post/reply/4735439
Any road up. I very definitely didn't mean to imply anything nefarious, or that MS had any influence over the Pi or anything of the kind.
But I am not in favour of proprietary BLOBs in general and firmware that isn't really firm. I've written about the problem before, here:
https://www.theregister.com/2022/03/01/proprietary_firmware_blobs/
If the upstream OS is now FOSS then all the Pi Foundation needs to do is get permission from Broadcom and it could release the source code to the Pi's version. There are a lot of people who'd like that and there have been 2 efforts to create such a thing from scratch already. One is linked in the article and the other is a fork:
https://github.com/librerpi/
If nothing else, now that newer versions are available as FOSS it's possible that the Pi 1/2/3/4 firmware could be updated, maybe bringing new features. Or other companies could write their own, or port existing firmware such as coreboot.
I don't see any vast potential but more to the point I don't see any real downside to this.
"ThreadX is a tested and established product; some parts even have TÜV Functional Safety (FuSa) certification, such as the STM32 version [PDF]. That kind of thing is powerfully attractive to some customers."
Very true.
"As soon as this innocent little OS turned 21 in 2019, Microsoft grabbed it, acquiring ThreadX owners Express Logic and rebranding the poor thing as Azure RTOS, "
And now it's ruined.
As history demonstrates.
:-/