On the podcast, [Tom] and I were talking about the continuing saga of the libogc debacle. [Tom] has been interviewing some of the principals involved, so he’s got some first-hand perspective on it all – you should really go read his pieces. But the short version is that an old library that many Nintendo game emulators use appears to have cribbed code from both and open-source real-time operating system called RTEMS, and the Linux kernel itself.
You probably know Linux, but RTEMS is a high-reliability RTOS for aerospace. People in the field tell me that it’s well-known in those circles, but it doesn’t have a high profile in the hacker world. Still, satellites run RTEMS, so it’s probably also a good place to draw inspiration from, or simply use the library as-is. Since it’s BSD-licensed, you can also borrow entire functions wholesale if you attribute them properly.
In the end, an RTOS is an RTOS. It doesn’t matter if it’s developed for blinking LEDs or for guiding ICBMs. This thought got [Tom] and I to thinking about what other high-reliability open-source code is out there, hidden away in obscurity because of the industry that it was developed for. NASA’s core flight system came instantly to mind, but NASA makes much of its code available for you to use if you’re interested. There are surely worse places to draw inspiration!
What other off-the-beaten-path software sources do you know of that might be useful for our crowd?
So far no one has mentioned RTEMS is also a popular target for embedded EPICS I/O controllers (IOCs) in the world of particle accelerator systems – a bit more innocuous than ICBMs.
Reference example: https://docs.epics-controls.org/en/latest/getting-started/installation-rtems.html
I mean sure… but RTEMS was developed specifically for use in missiles. It was only later that it got more applications.
RTEMS is well known in space applications (and should be for EPICS applications) because there is a tendency to write papers and be more open in science. RTEMS powers systems from the Sun (Parker Solar Probe and Solar Orbiter) to Jupiter (Juno). It runs the Gallieo GPS satellites and radios on and circling Mars. It ran DART which was the asteroid redirection experiment. The Fermi and MMS projects have both made significant contributions. ESA.has done multiple pre-qualification efforts on RTEMS and with the latest submitted the inputs to that process to the open source project.
The EPICS community has used RTEMS in a large number of high energy physics labs around the world. Their use has led to multiple discoveries.
Industrial, medical. and commercial users don’t publish papers or advertise what they use on their embedded systems. We respect that. But RTEMS is quietly in wide use.
Hey Joel! Good to see you here.
RTEMS sounds amazing!
It’s one of the few open-source projects that I’ve heard of getting certified against standards like DO-178. Edisoft RTEMS (which was RTEMS 4.8.0 on a Leon 3 SoC) was certified to DAL-B.
There are precious few attempts to construct to DO-178 or DO-254 in the open-source world (that I’m aware of) since Open DO disappeared. If anyone knows of a project or two that could be added to the list I’d be absolutely fascinated to read about it. Bonus points if you can link directly to some sort of source code or design repository.
The others I’ve cone across are:
WolfSSL: a Secure Sockets Layer for traceable artifacts, enabling Secure Boot & Secure Firmware Update for avionics.
License GPLv2. Probably being a thicko but I can’t for the life of me see the source code on their website
Phoenix RTOS 178: a Real Time Operating System for systems aiming toward DO-178C certification
License BSD. Github.
On a completely unrelated note, I think the patent for ARINC 664 (AFDX) expires this year.
I do wish the project was a bit less quiet though, many people interested in embedded work either haven’t heard of it or lump RTEMS with other proprietary vendors automatically.
Core flight system (cFS) is widely used in spacecraft while YAMCS is used heavily on the ground. And the whole GNU/Linux ecosystem underpins it with utilities, build systems, compiler, etc. Open Source permeates the space industry.
Yet the Gov as a whole continues to pay Microsoft Billions yearly to run windows and office stuff -_-
Mass firings should solve that problem.
It drives me absolutely nuts as a contractor. Literally everything they use computers for could be done on linux, with a cheap computer heck a Pi5 would be enough for most.
They could save on Windows licenses, Microsoft Office licenses, Adobe licenses (they love pdfs) and more.
Not to mention, using MS Offfice has been previously an explicitly a violation of management directives (this was around ~2006 I think) which were clearly written by someone who saw them as a tool of regulatory capture and conflict of interest, in addition to a security and overhead problem (Including with DHS), but new management just swept that away on a whim after a meeting with a Microsoft rep who tells them the TCO is better than ever! and nobody can challenge it.
[trust in \ reliance upon] black-blob proprietary systems went from being marketed toward consumers, to being sold B2B, to being accepted as standard by lifelong “expert” engineers & scientists.
Meanwhile, open-source still underpins every essential system, with proprietary branding hitching its wagon along for the ride, & most of us knowing only the brand names.
So does pretty much every private corporation.
True but private companies aren’t funded by tax dollars, and have to turn a profit or fail
Just think about all the companies out there that depend on Excel shudders.
Rtems knows where it’s at because it knows where it isn’t.
It’s got two turntables and a microphone …
Wow, was this article written for me? The two pieces of space software I evangelize the most!
Open source software equality issues?
after a Ubntu install why does it task so many steps amd so long after sudo apt upgrade?
AI Overview.
After an Ubuntu installation, the sudo apt upgrade command can take numerous steps and a
considerable amount of time due to several factors related to package management, network c
onnectivity, and system resources.
Here’s a breakdown of the reasons:
Package Dependencies and Updates:
Network Connectivity and Download Speed:
System Resources:
System Settings and Third-Party Repositories:
Other Factors:
Try writing of your reply yourself so you can tell when it doesn’t make sense. We can only make assumptions which may be wrong when you post like this instead.
You are installing an entire OS and development tools, and a development platform for another OS, including any dependencies. That’s going to take some setup time. The things you list are mostly automatic though, and there is a forum for newbie help.
Don’t expect generative systems to hold you hand, they don’t know what a hand is.
There’s some useful stuff in there. Thanks.