I don’t expect seing rust code in the shuttle, but maybe formal proof with custom functionnal languages...
However on the SpaceX software side I think they’re fairly conservative and “boring”, so I’d guess C and similar guidelines to what you’ve mentioned.
[0] https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...
Linux used to run as a non-privileged process in hard real-time kernel, which taken together was guaranteeing responses in nanoseconds range.
If this is still the case (along with what Wikipedia states) , the whole system is by definition hard real-time.
In any case, SpaceX doesn't use Linux for hard realtime systems.
> They do not have hard realtime requirements
https://lwn.net/Articles/540368/
And I probably wouldn't use the RTLinux for a real hard realtime system if I were making the choice. Putting all of the realtime code in the same memory domain as the rest of the Linux kernel is a huge surface area for corruption. I'd probably use sel4 with a virtualized Linux to get the same semantics.
That isn't to say they haven't been doing interesting things from a technical perspective (they're landing rockets on barges, after all), but the real secret to their success has been taking proven technology and doing it better/more efficiently (for instance, the fundamental design of their rocket engine, the Merlin, dates back to 50's).
Unless they accomplished a miracle by building a world-class engineering team from zero, there must have been a catalyst.
Just a couple examples would include Tom Mueller, who was responsible for most of the design of the propulsion systems SpaceX currently uses (including the Merlin and Draco engines), and Gwynne Shotwell, SpaceX's President and COO. SpaceX absolutely owes its existence to Shotwell, both its commercial success, and the fact that it didn't die (a number of times) are directly due to her.
From an outsider's perspective (_very_ outside), it seems like it's really the "synergy" of Elon and Gwynne that have made SpaceX what it is today.
There is - having visionary, charismatic founder(s). This pattern has been successful at Apple, Microsoft, Amazon, Facebook, Netflix, Tesla\SpaceX, Google.
Is there really a competition for this much price difference?
And it's not like this is unique to software. It's the difference between a disposable plastic fork and surgical instruments.
Life sustaining equipment is regulated and has a lot of resources spent on it to make it reliable. And toy software doesn't matter if it falls down.
I guess medium level services fall in between. Still causing inconvenience and monetary losses when they fail.
"Did I finish that weld good enough?" "Yes, we checked it 1000 times" "But what if I missed something?"
And clearly, those kinds of mistakes have happened. And that's why we check 1000 times instead of 500.
I have no idea how it is actually done. But my guess is that lots and lots of automated testing. It is the only way to make sure that any changes you make do no break some other critical parts.
Sadly, not as automated as you would hope/think.
The industry is working toward fuller automated testing, but it is much harder to do with “real hardware” in the loop.
Part of the reason why space has [historically] been expensive is exactly because you have to have specialized humans doing a ton of tests.
One reason Elon has been able to lower costs by reusable rockets is exactly because you don’t have to do as much testing per launch.