SpaceX: Lessons Learned Developing Software For Space Vehicles 160
jrepin writes "On day two of the 2013 Embedded Linux Conference, Robert Rose of SpaceX spoke about the 'Lessons Learned Developing Software for Space Vehicles.' In his talk, he discussed how SpaceX develops its Linux-based software for a wide variety of tasks needed to put spacecraft into orbit—and eventually beyond. Linux runs everywhere at SpaceX, he said, on everything from desktops to spacecraft."
VxWorks? (Score:5, Insightful)
I thought that for the Falcon rocket and Dragon capsule, SpaceX use the VxWorks realtime OS made by Wind River.
Is the market for spacecraft programming expected to grow significantly in the coming decade(s)?
Seems straightforward (Score:3, Insightful)
All of you eggs, meet your basket. (Score:5, Insightful)
I started my career in nuclear engineering before moving into software development.
There were three really important principles: Redundancy (having several of everything); Diversity (having different implementations i.e. different designs from different manufacturers) and Segregation (keeping things physically separate and firewalled off from each other).
I'm a bigger Linux fan than many here. I've been using it since 1995 and I'm a die-hard Slackware user, but having everything running on the same OS seems like an accident waiting to happen. Yes, I know that it's great that you can have one piece of code that you can compile and run anywhere, and that's easier if you're only using one OS.
However, one of the great things about Open Standards and Open Source was (is) that for many years software was portable so that it could be compiled and run on big- or little-endian 32- and 64-bit POSIX-like systems on a wide variety of CPU architectures.
That may have been "expensive" in terms of software maintenance, but as I learned when working for a now-defunct very large UNIX company, writing your software to be portable across those systems exposes (and forces you to fix) many subtle bugs that otherwise would not have been found until deployment.
Also, relying on just one OS puts you at the mercy of any latent bug in that specific system. Having a diversity of OSes in use mitigates that problem.
The state of Software Engineering in general is still pretty primitive. I'm still amazed at the poor quality of a lot of "professional" code and the cavalier attitude towards testing...In the land of the blind, the one-eyed man is king.
Where is NASA ? (Score:5, Insightful)
NASA sent out spaceships to moons and brought them back to earth, back in the 1960's
They did that without using Linux, or Unix, or any type of "nixes"
If there is a real need to learn a "lesson", methinks the best lessons we can learn are from those who develop original programs for NASA
Nobody else even comes close
Why mention Linux? (Score:1, Insightful)
Linux is mentioned twice in the summary. Is there a reason why? We all know Linux has major use in the embedded and scientific world, this isn't a secret. Are people still desperate to mention Linux anywhere as some form of validation that they chose the right decision to stick with it or something?
I thought Linux had "won", or something. If that was the case then it shouldn't be necessary to circlejerk the name anymore.
Learning from NASA's experience ... (Score:4, Insightful)
Back in those days, the problem with "random flip bit", brought on by space radiation was already present
Apparently NASA has successfully dealt with that phenomenon - or a lot of NASA's spacecrafts would have spun out of control
Since NASA has decades of experiences dealing with fascinating problems like that it's UTTER FOOLISHNESS if we do not learn from NASA
Re:Actually they employ a lot of people (Score:4, Insightful)
They have to, the pool of experienced aerospace people is small and shrinking due to old age. There is only one way to produce more people with experience in aerospace and it does not involve H1-B or wishing really hard.