Slashdot Mirror


SpaceX: Lessons Learned Developing Software For Space Vehicles

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."

28 of 160 comments (clear)

  1. VxWorks? by sanman2 · · Score: 4, 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)?

    1. Re:VxWorks? by DerekLyons · · Score: 2

      Is the market for spacecraft programming expected to grow significantly in the coming decade(s)?

      Even if it went up an order of magnitude... you're still only talking a few thousand jobs. Not something I'd want to build a career plan on.

    2. Re:VxWorks? by RightwingNutjob · · Score: 2

      The JPL-built Mars rovers run VxWorks, as do some other NASA probes. Maybe that's what you're thinking of.

    3. Re:VxWorks? by Guspaz · · Score: 2

      VxWorks is an operating system, not a company. Wind River, who make VxWorks, sell Wind River Linux.

    4. Re:VxWorks? by Dahamma · · Score: 2

      Or don't RTFA, and instead actually do some research first.

      http://www.spacex.com/downloads/dragonlab-datasheet.pdf

      Search for "Flight Software" (the most mission critical RT bit, of course).

    5. Re:VxWorks? by khallow · · Score: 2
      Here's the part you missed:

      Due to miniaturization of sensors, solar panels, CPUs and communication devices (lasers and/or RF), you will be able to do massively useful stuff at something like 50k dollar of cost. For example, you can shoot up microsats just for a single sailing sports event and do some nifty communications with that. Iridium-style messaging will soon be possible for the "little" guy and his 100 million dollars, if you just want texting to be done with it.

  2. Seems straightforward by gadzook33 · · Score: 2, Insightful

    I think this is all interesting and good stuff but hopefully most of it is stuff that software companies are already doing these days. At this point if you're not doing continuous integration or looking at ways to automate anything that possibly can be automated, you should get moving.

  3. All of you eggs, meet your basket. by Anonymous Coward · · 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.

    1. Re:All of you eggs, meet your basket. by DerekLyons · · Score: 2

      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.

      Having a diversity of OSes puts you at the mercy of random and subtle bugs in one OS that require customizing either the OS or the code. (Which customization carriers further hazards of it's own.) Relying on one OS mitigates that problem.

      TANSTAAFL.

  4. Re:Max Length by Frosty+Piss · · Score: 5, Informative

    Okay, somebody ban this guy...

    "You must be new here".

    Do you actually believe that trolls are "banned" at Slashdot?

    That's what the moderation system is for.

    Slashdot is not like other "forums" in that it is *not* "moderated" by "super users", but rather regular users like you and I who are occasionally gifted with "mod points".

    The "offending" post is never removed, it is just pushed below most users viewing threshold.

    Seriously, "ban this guy"? You *MUST* be new here...

    --
    If you want news from today, you have to come back tomorrow.
  5. Re:Cruel and unusual punishment by Anonymous Coward · · Score: 5, Interesting

    In his team, they have a full-size Justin Bieber cutout that gets placed facing the team member who broke the build. They found that "100% of software engineers don't like Justin Bieber", and will work quickly to fix the build problem.

    You see, that's why you have overflowing prisons. This would easily reduce the crime rate by a factor of ten!

    Doubtful. At my $lastjob we had a rule that if you broke the nightly build you bought doughnuts for everyone. And the project lead would rip you a new one.

    Despite my admonitions to not check stuff in at the end of the day we had two guys that just couldn't figure it out. One of them worked in St. Petersburg (Russia, not Florida) and he'd check stuff in at the end of his day and go home, meaning we'd be stuck with the dirty job of backing his stuff out so that we could proceed.

    And the local guy would whine and cry about how it wasn't his fault, it worked in his tree, yada yada yada. Well, his tree was usually a few days out of date by the time he was ready to check his stuff in, and he just couldn't get the knack of rebasing his tree and building before committing to the master. Sheesh. This stuff isn't rocket science. And as I said, he insisted on doing this at the end of the day – every time. Eventually it cost him his job.

    So no, I don't believe the threat of being stared at by a full size cutout of the Biebs would solve crime either.

  6. Re:Holy Shit! by maxwell+demon · · Score: 5, Funny

    malloc() and new() are non-deterministic in many ways and therefore to be banned in anything truely real-time.

    Don't worry. We now have garbage collected languages where we don't need malloc/free any longer. :-)

    --
    The Tao of math: The numbers you can count are not the real numbers.
  7. Where is NASA ? by Taco+Cowboy · · Score: 4, 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

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Where is NASA ? by ColdWetDog · · Score: 5, Interesting

      And they spent years, millions of dollars and thousands of man-hours doing so. I'm sure that the folks at NASA are pretty happy with modern toolsets. My father worked on the Saturn V instrumentation - Op Amps the size of cigarette boxes, telemetry transmitters the size of breadboxes with 300 baud max speeds. Graph paper. Slide rules. Simple changes requiring weeks of rework.

      Linux and associated bits and pieces are a big step in the right direction.

      --
      Faster! Faster! Faster would be better!
  8. Re:Why mention Linux? by nospam007 · · Score: 5, Funny

    "Linux is mentioned twice in the summary. Is there a reason why?"

    2013 will be the year of Linux on spaceships.

  9. Re:Emacs by K.+S.+Kyosuke · · Score: 4, Funny

    Emacs Makes A Crappy Spaceship. That's why!

    --
    Ezekiel 23:20
  10. Re:Cruel and unusual punishment by S.O.B. · · Score: 4, Funny

    So no, I don't believe the threat of being stared at by a full size cutout of the Biebs would solve crime either.

    Then maybe you just need to up the ante. How about have the real Bieber sitting naked on the edge of his desk seductively blowing him kisses?

    --
    Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
  11. Learning from NASA's experience ... by Taco+Cowboy · · Score: 3, 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

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Learning from NASA's experience ... by tibit · · Score: 5, Informative

      And obviously you think -- I find it a common misconception -- that SpaceX is reengineering everything from scratch, including the engineering process itself. Well, here's a wakeup call for you: they employ plenty of people with lots of legacy space mission experience. The choice of the kernel is a minor thing in the grander scheme of things.

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:Learning from NASA's experience ... by davester666 · · Score: 2

      Just hook everything up to a Android phone and you are set, because it runs Linux. And Java.

      What could go wrong?

      --
      Sleep your way to a whiter smile...date a dentist!
    3. Re:Learning from NASA's experience ... by K.+S.+Kyosuke · · Score: 3, Informative

      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

      Except that the problem with "random bit flips" was relatively minor, because:

      1) The AGC CPU's were much larger and less vulnerable to high energy particles, using basically the first generation of Intel NOR gate circuits (I believe there were two NOR gates in a single IC package back then) with large feature size.

      2) The RWM was realized in form of a matrix of magnetic cores, which are completely unaffected by high energy particles,

      3) The ROM was realized in form of "ropes" of huge magnetic cores (which, again, are completely unaffected by high energy particles) threaded with wires in an elaborate way.

      The actual threading of the wires was done by elderly women with skilled hands, according to a translation of the machine code to instructions for the women as to how to thread the wires. I guess you can imagine the turnaround rate. Punch cards are a lightning-fast way of programming computers, compared to this.

      Given the extent to which active feedback control has replaced a lot of hardware in modern high technology, and how everything is so much more self-diagnostic, self-tuning, and remotely monitored these days (look at car ECUs, for example), I *seriously* hope you're not trying to say that we should build and program a modern spacecraft control computer this way.

      We have different electronic technology nowadays, and we have different manufacturing technology to build the electronic components, and we have to use completely different approaches to deal with different problems (or rather, different solutions for the old problems) that this brings.

      You sound like the people who keep asking "Why don't we just build the Saturn V again?" The answer is still the same: "We can't, even if we had all the plans, Saturn V was designed to be built by hand with power tools and toolings that nobody uses anymore, we have to design a CNC-buildable rocket and it's simply going to be different." In the case of electronics, the answer is analogical, we have to re-solve the old problems in terms of new electronic components.

      --
      Ezekiel 23:20
  12. Re:Holy Shit! by tibit · · Score: 2

    They are only non-deterministic if you don't know what you're doing.

    --
    A successful API design takes a mixture of software design and pedagogy.
  13. Re:NOT by tibit · · Score: 2

    Sorry to burst your bubble, but some of Pascal's syntactic features were conceived by people who demonstrably had no idea how people -- the software developers -- actually process information. You see, programming languages are first and foremost tools for people. The code must be readable long after it has been written. Pascal's arbitrary separation of variable declarations from the first point-of-use is positively unergnomic and runs against the need for locality-of-reference as an aid to understanding. This stupidity has been propagated into IEC 61131 PLC programming languages. I'll take modern C/C++ definition-at-point-of-use any day, thank you so much.

    --
    A successful API design takes a mixture of software design and pedagogy.
  14. Mod System: Down == Disagree, Up == Agree by fyngyrz · · Score: 2, Interesting

    That's what the moderation system is for.

    No, no. You must be new here. The moderation system is there so you can impose your opinion on otherwise reasonable posts. That's what it's used for, that's what it's best at, Slashdot refuses to change it (I'd say fix it, but it appears to be working as intended) and so... one must conclude that is what it was designed for.

    --
    I've fallen off your lawn, and I can't get up.
  15. Re:Actually they employ a lot of people by sjames · · Score: 3, 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.

  16. Re:Garbage by maxwell+demon · · Score: 3, Informative

    You might have noticed the three characters at the very end of my post. A colon, followed by a hyphen, followed by a closing parenthesis. You might want to inform yourself about the meaning of this letter combination. Here's a hint: It is known as smiley. Google for it. You might get enlightened.

    See also: Whoosh.

    --
    The Tao of math: The numbers you can count are not the real numbers.
  17. Re:Garbage by maxwell+demon · · Score: 2

    Since when do troll posts end in smilies?

    --
    The Tao of math: The numbers you can count are not the real numbers.
  18. Re:NOT by Cyberax · · Score: 2

    Modern Pascal dialects are hardly 'simple', they have all the OOP stuff and lots of somewhat clumsily implemented extensions (like closures). So Algol or Standard Pascal are in no way 'simpler' or 'reliable' - they are just so primitive that most of programs written in Pascal are little more advanced than a textbook exercises.