8 ms·
Microsoft open-sources ThreadX
- delfinom 3y agoAnother piece of software goes to rot under the Eclipse Foundation, woo A foundation so bureaucratic that there is OSS that new people can't take over because it requires years of bureaucratic process.
- andyjohnson0 3y agoAccording to the article the software is MIT licenced - one of the most permissive licences available. The Eclipse Foundation is an unusual choice, but amyone can use/modify or even fork this code if they want.
- deleted 3y ago[deleted]
- maccard 3y agoSo what's your alternative? Leave it rot in a filing cupboard somewhere?
- nine_k 3y agoWhat's the point of "taking over" if you can fork? How it something OSS if you cannot fork?
- sigzero 3y agoIt isn't going to rot. It's used in a phenomenal amount of devices. This is a good thing.
- jzb 3y agoIt will only rot if nobody wants to work on it. If Eclipse is horribly bureaucratic, then developers who don't want to participate in an Eclipse project may now fork it. Seems like it's a win-win. If there's a group that can't abide whatever constraints exist with Eclipse, then they can fork. If not, it's still better off being open than not. I don't really see a downside here.
- joezydeco 3y agoThis was "Azure RTOS", bought by Microsoft in haste after Amazon acquired FreeRTOS. Bill Lamie left to start PX5 and work on a new lightweight embedded RTOS and took most of the talent with him. If Microsoft is doing this, they're pretty much walking away from their roadmap for Azure RTOS and IoT nodes along those lines. I call it a win, ThreadX had a lot more ecosystem behind it than FreeRTOS ever did. And it does run on things other than Raspberry Pis. Renesas used to give it away for free if you bought their SoCs.
- westurner 3y agoBut are there devs for the acquired platform now? The article says ThreadX used to be what Intel Management Engine ME ran on? How do I configure the ME / AMT VNC auth in there?
- joezydeco 3y agoThreadX has been around for 25 years. You licensed it and put it in your embedded system. It's in a lot of products.
- sigzero 3y ago> It's in a lot of products. "currently running on over 12 billion devices around the world"
- westurner 3y agoBut how many people agreed to sign an NDA in order to cluster fuzz such a critical low-level firmware binary blob component? Is this like another baseband processor?
- joezydeco 3y agoThe development of ThreadX has nothing to do with all with RPi and VideoCore. It's a software component that was used to develop a larger architecture.
- 3y ago
- baq 3y ago> At this point, only the current version is on GitHub, and we don't see any trace of a VideoCore version. :( (This is the RPi boot blob) > 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. Indeed that would be something!
- joezydeco 3y agoI understand the notion here that opening up ThreadX will start to allow visibility into VideoCore, since ThreadX runs the thing. But an RTOS/scheduler is only a miniscule part of a GPU and since Broadcom never opens up anything, I believe it's a false hope. Opening up any GPU code, from any maker, invites patent lawsuits from competitors. And then the injunctions start flying.
- Zigurd 3y agoCan confirm: same story for PowerVR. It's a double whammy: They want the driver licensing revenue and they are afraid of patent trouble.
- jauntywundrkind 3y agoI was going to point out that Linux 6.8 seems on target to be shipping pretty decent powervr drivers, but yeah, probably a huge massive chunk of the magic is in the firmware blob, which is closed as heck as usual for this industry. Both drivers & boob very recently dropped: https://www.phoronix.com/news/PowerVR-Firmware-Blob https://www.phoronix.com/news/PowerVR-Firmware-Blob I think though they're finally realized trying to charge people for drivers has made them a hated name & gotten them no where. GMA500 is a long awful wound on everyone & held Intel back from being much better at embedded than they could have been. Powervr has been one of those living embodiments of the phrase "expensive chips without good drivers are just expensive sand", or however it goes. So now this stuff hypothetically is going to start to be broadly usable (only on Linux underimited architrctures I guess? Since it's mostly binary blobs?).
- MegaDeKay 3y ago
- leoedin 3y agoThe safety certifications are particularly interesting. It's a lot of work to develop "safe software" - that is software that is developed according to a safety standard and certified to a "safety integrity level". Having an RTOS which is both open source and safety certified is pretty great. They say they want to maintain the certifications - that will be tricky unless there's some investment coming from somewhere. It's a lot of fairly bureaucratic work to understand the safety standards, put the right development processes in place and maintain those as your software changes. It's not nearly as simple as just writing code and running it. It's definitely not the kind of software development someone would do as a hobby. I hope Microsoft are going to fund some of that development effort. Interestingly although FreeRTOS isn't safety certified, SAFERTOS (https://www.highintegritysystems.com/safertos/ https://www.highintegritysystems.com/safertos/) is - which is a commercial implementation with the same APIs.
- MegaDeKay 3y agoYes, that ongoing certification will be costly but they mention the support of companies with pretty deep pockets: "In addition to the project, we are also announcing the creation of an interest group focused on developing an industry-supported, sustainable funding model for ThreadX. We are excited that AMD, Cypherbridge, Microsoft, NXP, PX5, Renesas, ST Microelectronics, Silicon Labs, and Witekio (an Avnet company) have all committed to supporting this conversation"
- demondemidi 3y agoThis is huge. Automakers won’t touch something unless it is iso 26262, and it commands a 10x premium. It is very hard to functional safety right, and this compliance is a key component in enabling tier 2 manufacturers.
- hiAndrewQuinn 3y agoI'll say. EN 50128 is the first box I need to check as someone who leads railway software projects. This immediately caught my eye as a result.
- roland35 3y agoSafeRTOS is a complete rewrite of FreeRTOS, it's more or less API compatible. The cost is all in the certificate!
- zwieback 3y agoIt's a fine RTOS, at least it was when I was working on Deskjet firmware. At the time the open source OSes and especially the tooling really wasn't up to the task. Things really have changed though, now there are alternatives.
- hospitalJail 3y agoThe progress the embedded world has made on FOSS has been incredible. I started in like 2016 or 2017(ignoring the ~8 years I played with Arduino). At the end of the day, I end up often using microchip studio because that is my board and it just works nicely. However, I have tons of tiny personal projects I'll spin up with vscode and platformIO and knock stuff out. Heck, even when I was merely playing around with it, I was able to FOSS my way to building and sending everything with various software. I cannot imagine embedded pre ardunio. You'd think it would have created a scarcity of workers.
- HankB99 3y ago> I cannot imagine embedded pre ardunio. You'd think it would have created a scarcity of workers. That made it a useful market to be in (as a developer.) My first embedded task was on a PDP 11/23 sans OS (despite the fact that DEC had suitable RTOSs like RSX-11M)
- linuxdude314 3y agoIt’s not that hard, 2nd year EE classes at most. Once you learn how to read a data sheet for your MCU or SOC things start to click.
- zwieback 3y ago...and when you find yourself reading the errata sheet for your specific silicon revision you've arrived.
- amluto 3y agoOne of my first projects was an embedded thing, long before 2016, where the number of deployments was exactly one. (It was a ruggedized device embedded into an experiment that we literally dropped from an eight story building twice a day. The device in question did just fine, although, unsurprisingly, a bunch of the rest of the apparatus needed rather regular repairs.) The development experience was miserable. The embedded code was in C, and, when something went wrong, there was about a 50% chance that the bug was in the proprietary compiler from the vendor and not in the C code at all. There was probably some way to debug the live system, but I never found it. I’m not sure where was any way to simulate the system well enough to run our code short of actually uploading it to the device. The world has come a long way :). An RPi or Arduino or anything else along those lines would likely also survive the treatment we gave this thing as long as all the connectors were very well secured.
- bigcheezr 3y ago[flagged]
- bfrog 3y agoIt'll be really interesting to see how this shakes out in terms of other open rtos projects given a safety certified RTOS is now available under a nice license with wide architecture support.
- llm_nerd 3y agoFor those wondering why Azure has an RTOS, Microsoft bought Express Logic and their ThreadX RTOS in 2019. ThreadX is in use on a large number of resource constrained microcontrollers. The Azure branding makes little sense, beyond maybe that IoT things communicate with the cloud or something.
- rickette 3y agoThe branding is probably also due to AWS having FreeRTOS https://aws.amazon.com/freertos/ https://aws.amazon.com/freertos/
- roland35 3y agoI believe Microsoft bought threadx in the height of the IoT hype cycle!
- jnwatson 3y agoPurchase price isn't public, but founders/owners did well. They already started up a competitor.
- paddy_m 3y agoIt took a lot of reading of that blogpost before I realized that it was about an operating system. I seriously thought it was about some parallel threading standard. Especially for a broad announcement like that, they should give readers some more context.
- sigzero 3y agoWhat? It's in the first paragraph of the linked announcement. Unless you didn't know what RTOS was an acronym for but that is a simple google request.
- dylan604 3y agoIt's also accepted publishing standards to expand an acronym the first time it is used. Of course, kids today don't know what standards are because a boomer made them or some such nonsense excuse for just I do what I want
- stonogo 3y agoThe first two uses of the term are part of product names, not uses of the term itself. They almost immediately explain the acronym in the next paragraph, and give alert readers a tremendous hint in the very first sentence. I think they did a perfectly acceptable job of providing context here. This publication was literally founded by a boomer, so I don't think your conclusory whining is particularly well-targeted.
- uxp8u61q 3y agoIf you don't know what an RTOS is, then what makes you think you're in the target audience for this article?
- lproven 3y agoAFAICT these comments are from a merged submission of a different link. If I may say so, @dang, that's a bad idea: if it is same URL then merge it, but if it's different coverage then don't. IMHO. Anyway, I wrote this version and I did explain what an RTOS is. I think the other submission used to link to the Eclipse announcement, and they didn't. (A bad sign.)
- synergy20 3y agohow does threadx compare to zephyr,now both fully open sourced,one under eclipse another under Linux foundation
- bfrog 3y agoZephyr is a lot more complicated than ThreadX and has been trying to get safety certified for many years now. It does have a really nice testing and board package story though, along with many other features ThreadX doesn't have. Like running a sample on a supported board with Zephyr is pretty trivial. With ThreadX it seems to be included in the vendor sdk much like freertos might be. Some pros and cons to each certainly.
- naasking 3y agoAny experience with Riot OS? https://www.riot-os.org/ https://www.riot-os.org/
- pantalaimon 3y agoIt’s pretty easy and convenient to get running, but it’s mostly written by students - so core components are left unmaintained once their authors graduate to other things.
- wiz21c 3y agoIs it me or certification is a very powerful way to keep control on the open sourced code ? I mean it's open so you can modify it but as soon as you touch one line, you can't claim the certification anymore... Therefore only MSFT has the ability to change the code (because I suppose they don't have to re-do the whole certification); until another big player gets the certification. Right ?
- eschneider 3y agoNot really. It's pretty rare to use an RTOS without making _some_ modifications and it's intertwined with your application anyways. If you need certification, you're going to have to get it for the combined app/RTOS/RTOS-modifications anyways. And you're in better shape starting from a base that you know passes certification.
- krylon 3y agoMy understanding is you need to re-certify in some form upon changing anything about the code. I'm not sure if it's the same process each time or if you can do some kind of incremental re-certification for minor updates. Either way, Microsoft can afford to do that if they want to. But I would (naively) expect the rules to apply to anyone who wants to modify the code base, I don't think Microsoft has any privileged position when it comes to that.
- j16sdiz 3y agoMicrosoft have access to the material they used in previous certification, this may make the process a lot cheaper.
- demondemidi 3y agoYes! There are some industries that will not tolerate seat-of-the-pants development. Functional safety requirements make a nice tall fence to keep out risky developers. Which is why china automakers have no such regulations.
- AlotOfReading 3y ago
- seba_dos1 3y ago> used in Raspberry Pis Raspberry Pi is probably one of the less notable users.
- joezydeco 3y agoBut it makes RPi fans perk up their ears because it's part of the GPU blob that they still haven't been able to reverse-engineer. This news about Azure RTOS has been posted to HN a few times over the last week or so, even once by me, but I didn't realize you had to put "Raspberry Pi" in the headline to get traction.
- lproven 3y agoArticle author/submitter here. > I didn't realize you had to put "Raspberry Pi" in the headline to get traction. Yes, this was my theory. I was guessing most people hadn't heard of ThreadX and didn't know what it was or that it was used in devices they already owned. That is the sort of info that gets stuff read and shared.
- joezydeco 3y agoMods just yanked "Raspberry Pi" from the headline. Interesting.
- lproven 3y agoYes, it is. I wonder why. There is nothing factually inaccurate or anything here. I know of ThreadX and its use in the Pi was why. I noted that most of the existing coverage of the move to FOSS didn't mention it, and realised that the writers didn't know. That's why I wrote the article.
- unnouinceput 3y agoQuote: " 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" This is something that always irked me about RPi's. How the fuck, you, the hardware vendor, that's suppose to know the inner guts of your product, do not have full production for its software? That you need it to rely on undisclosed 3rd party blobs!! Yes, yes, I know about the politics and the business logic that led to this situation but that was at beginning, when money were need it. Nowadays they are in a good place in that regard, might wanna pivot so they fully control everything, but I guess once you go with a bad design, the complacent around that just grows.
- robertlagrant 3y agoThey're the vendor, not the manufacturer. Dell don't release all the source code for the components they construct their devices from.
- phendrenad2 3y agoGetting downvoted because nobody took the time to read your post, I assume. RPi foundation could probably have their own SoC made at this point, and (finally) having fully open firmware would be a huge selling point and maybe help stave off the clones. So why don't they do that?
- surajrmal 3y agoThey almost certainly cannot afford to do that at the prices they are selling these things for. I'm also not entirely certain a large enough fraction of their customer base cares enough for them to take action here. They are likely doing the practical thing that makes the most sense.
- Andrex 3y agoThe RPi 5 has custom silicon. Custom silicon is hard and few would accept significant a step down in raw power compared to the previous generation while the transition occurs.
- lproven 3y ago
- techn00 3y agoRepo: https://github.com/azure-rtos/threadx https://github.com/azure-rtos/threadx
- InitEnabler 3y agoLicense looked alright, until I came across this: https://github.com/azure-rtos/threadx/blob/a8e5d0946c31385ff97bb27b67b2cdd905b9a58b/LICENSE.txt#L77 https://github.com/azure-rtos/threadx/blob/a8e5d0946c31385ff...
- wakamoleguy 3y agoThe announcement says it will be made available under the MIT license, so I would expect the repo to be updated at some point.
- freedomben 3y agoThis is indeed a major deal, and having the Eclipse Foundation shepherd it is wonderful. Microsoft deserves praise and even adulation for this, but time will tell how well supported the project is. They have a good track record so I'm very optimistic, but this is going to require a lot of ongoing support. That shouldn't be and isn't on Microsoft alone now, but they may have to shoulder a larger burden while getting things moving.
- LispSporks22 3y agoAre they dumping it on Eclipse and waving bye-bye or are they sticking around to develop it further? Many projects seem to be ditched by corporations and kind of orphaned in Eclipse and Apache
- refulgentis 3y agoYeah...I'd love a blow by blow on Eclipse, my (joking) understanding prior to this article was it was an IDE open source project that grew so unwieldly/abandoned that some combo of JetBrains & Google was able to co-opt it and end up owning it entirely.
- twisteriffic 3y agoA _lot_ of Microsoft's open source projects are basically ghost towns. EF core and the SQL server driver appear to be maybe a handful of people, and there is a disturbing amount of "the only person who understood this is gone so we can't fix it.". Get into some of the more esoteric projects and you're lucky if there's someone dropping in to accept a PR once a year. I'm assuming that every dev ends up consumed by endless rewrites of the Azure client libraries.
- denysvitali 3y agoThere are some cheap chinese cameras built on top of that OS, this might be interesting
- davmar 3y ago"Every once in a while, a new open source initiative comes along which is truly an industry changing event" - the article "Every once in a while, a revolutionary product comes along that changes everything" - steve jobs announcing the iPhone in 2007
- wslh 3y agoHow QNX plays in all this picture/benchmark? [1] I understand this is a different RTOS but do we expect Microsoft to open source QNX as well or because it was the cash cow of the sector they will wait? QNX has several licensing options. [1] https://blackberry.qnx.com/en https://blackberry.qnx.com/en
- joezydeco 3y agoQNX is a Blackberry product, not Microsoft.
- wslh 3y agoThank you, my fault. Nokia was acquired by Microsoft. Microsoft and Blackberry had a partnership only [1]. [1] https://www.investopedia.com/news/blackberry-shares-jump-microsoft-partnership/ https://www.investopedia.com/news/blackberry-shares-jump-mic...
- ryandrake 3y agoWow, ThreadX. To quote Obi-wan, "That's a name I've not heard in a long time". I last worked on a ThreadX based product about 20 years ago. It was annoying because our application device did not require Real Time scheduling, or a particularly fast boot, but the decision to go with ThreadX rather than, say, embedded Linux was made way over my Junior head. We even had a separate "higher end" product that ran embedded Linux, which was a joy to work with, so it's not like we didn't think Linux would work. Everything we ended up doing on that product took 2X to 3X as long to develop, debug, and test because a lot of the niceties that you come to rely on from a kernel simply didn't exist with ThreadX. It's really something I would only use for an extremely simple safety-critical device, one that absolutely needed Real Time.
- penguin_booze 3y agoI've come to associate Eclipse (and Apache) with Java. Given that this is an RTOS for microcontrollers, is this written in Java? > A corresponding open source project has not yet been created
- Matthias247 3y agoEclipse and Apache are foundations. And while those foundations host a set of Java projects, they are not limited to it.
- mikehollinger 3y agoI really liked ThreadX when I was working with it a while ago. Calling it an "operating system" is charitable in the sense that it's an interrupt service routine and a bunch of functions to handle 'creating threads' and managing memory allocations. It was super light weight and quite nice to get stuff done. You call tx_thread_create or some such and then tx_malloc and so on and then they have tx queues and semaphores and mutexes and so on. Neat to see it's still living on. In our case we were doing real-time power/fan/thermal control loops so we needed control over when certain actions were happening and needed to be able to guarantee that we could sense a problem and then (within X ticks) issue commands to respond, or make the system safe to prevent damage.
- uxp8u61q 3y ago> I really liked ThreadX when I was working with it a while ago. Calling it an "operating system" is charitable in the sense that it's an interrupt service routine and a bunch of functions to handle 'creating threads' and managing memory allocations. Yes, that's called an RTOS.
- josemanuel 3y agoI thought Microsoft bought the threadX company very recently. Interesting change of strategy?
- lproven 3y ago[Article author/submitter here] Define "very recently". It was nearly 5Y ago now. I'd not call that very recent, no.
- andrewstuart 3y ago"Open sourcing" as in dumping the project and hoping to avoid community anger? Or "open sourcing" with money and commitment and developers behind it?
- gte525u 3y agouCOS-II and uCOS-III were open sourced a while ago as well https://github.com/weston-embedded https://github.com/weston-embedded
- dang 3y agoRelated: https://eclipse-foundation.blog/2023/11/21/introducing-eclipse-threadx/ https://eclipse-foundation.blog/2023/11/21/introducing-eclip... (via https://news.ycombinator.com/item?id=38445039 https://news.ycombinator.com/item?id=38445039, but we merged that thread hither)
- greggsy 3y ago> [ThreadX firmware binary] 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 slave devices to the VideoCore GPU. Very interesting factoid - I had no idea.
- lproven 3y agoLots of people don't. That's why I wrote this article.
- ThinkBeat 3y agoHow long before I can play Doom on it?
- robot 3y agoIt is not open source. The source code is open but with an evaluation, i.e. proprietary license: https://github.com/azure-rtos/threadx/blob/master/LICENSE.txt https://github.com/azure-rtos/threadx/blob/master/LICENSE.tx...
- MarkSweep 3y agoWith the odd provision that you can only ship the software on certain devices: https://github.com/azure-rtos/threadx/blob/master/LICENSED-HARDWARE.txt https://github.com/azure-rtos/threadx/blob/master/LICENSED-H...
- lproven 3y agoArticle author/submitter here. This is out of date; the announcement was only days ago, which is why I wrote TFA, and they've not updated the licence files on Github yet.
- andy_threos_io 3y agoMy view that, this code is nice, however IMO there are several ways to make it more portable, and programer friendly, specially the ported assembly code part. Example. In file threadx-master/ports/cortex_a7/gnu/src/tx_thread_schedule.S in this code /* Increment the run count for this thread. */ LDR r2, [r0, #4] // Pickup run counter LDR r3, [r0, #24] // Pickup time-slice for this thread ADD r2, r2, #1 // Increment thread run-counter STR r2, [r0, #4] // Store the new run counter the indexes to the data structures are really hard to modify, so you can't make modifications to the structures easy, the C structures and the assembly code indexes must be in sync, or the system will crash. And there are literally 100s of files with assembly indexes in the code. But it can be made it easier, with another layer and macro preprocessing. So make a header one for the assembly and one for the C code, and define the struct with the macro. The assembly code can be compiled with C preprocessor, so the macros will work. This way the C and the ASM stay sync. Only drawback, that the struct must be defined with this macros. But this is only for the structures that are used both in assembly and C or higher level. Anyway if the indexes in the assembly code would be macros, that would be also much easier to modify.
- DrNosferatu 3y agoSo which RTOS’s are freely available right now for either Raspberry Pi or x86? Could they run, say, Doom?
- deafpolygon 3y agoDo you think Microsoft executives are somewhere asking GPT-5, or whatever nextgen LLM they have access to, what they should do next?