5 ms·
To help you with not feeling overwhelmed - they are doing it since May 6, 2002. It has taken a lot of time, of a lot of people to get here. There was a lot of f
by mandeepj 8y ago
To help you with not feeling overwhelmed - they are doing it since May 6, 2002. It has taken a lot of time, of a lot of people to get here. There was a lot of failures also, along the way.
- bsaul 8y agoI remember reading here a document about C programming guidelines for military / space software ( basically no dynamic memory allocation ever), but that was set a long time ago. I wonder if spaceX reinvented some parts of the software stack, or if they went along the traditional way. I don’t expect seing rust code in the shuttle, but maybe formal proof with custom functionnal languages...
- danpalmer 8y agoFrom what I understand, they are pushing the boundaries on the hardware front, i.e. relatively recent, typical Linux computers onboard, and just relying on having a few redundant ones and short flight times, rather than very radiation hardened systems like those used in satellites or real-time operating systems. 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.
- biesnecker 8y agoI'd be surprised if they were able to be human flight certified without all the redundancy and hardening that any other manned spacecraft has, though.
- gpm 8y agoFor example, my understanding is that the redundancy approach is basically "do everything on 3 computers, vote on the outcome".
- creatornator 8y agoSometimes you even have different firmware/software teams write code for each of the three different configurations (often targeting different processors/architectures, etc). Pretty cool
- JshWright 8y agoYou can "skimp" on hardening if you use more redundancy (which is generally cheaper, and often lighter (which is the real cost savings)).
- danpalmer 8y agoYou can also skimp on hardening if the operational lifetime in space is minutes to days, instead of months to years like most satellites.
- mandeepj 8y agoThey build everything in-house - software and hardware. You can read about it in detail in Musk's biography - https://www.amazon.com/Elon-Musk-SpaceX-Fantastic-Future-ebook/dp/B00KVI76ZS https://www.amazon.com/Elon-Musk-SpaceX-Fantastic-Future-ebo...
- elteto 8y agoThe flight software team did a reddit AMA a while back [0]. They use C++ for writing the flight software (what flies falcon, dragon, etc) running on a customized RT Linux. [0] https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_software_engineers_we_launch/ https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...
- monocasa 8y agoAnd FreeRTOS. RTLinux is only barely soft realtime.
- avmich 8y ago> RTLinux is only barely soft realtime. 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.
- solarkraft 8y agoBut only the underlying kernel part is actually real-time, the Linux process wouldn't be, right? That leads me to the question: Shouldn't all things in a rocket be real time? Are they "post-poning" stuff like telemetry and other communications?
- avmich 8y agoAll critical processes can run outside of Linux, in hard real-time fashion. Linux is used for non-critical things, like networking... The whole RTLinux includes Linux (non-RT part) and a hard RT part, for which you can write your code.
- monocasa 8y agoWow, that's really silly that someone went out, made a hard realtime system using Linux as the lowest priority level, and then called it RTLinux. RTLinux for years had meant Linux with the PREEMPT_RT patches. In any case, SpaceX doesn't use Linux for hard realtime systems. > They do not have hard realtime requirements https://lwn.net/Articles/540368/ 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.
- JshWright 8y agoA lot of what they are doing dates back a lot further than that. The innovations SpaceX has brought to the industry are more process related than technical. SpaceX has done a great job of setting a streamlined vertical integration for their production processes, which has allowed them to iterate a lot faster than others in the industry. 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).
- joezydeco 8y agoSo, out of curiosity, was there one person responsible for SpaceX operating in this manner? Was it Musk, or someone else? Unless they accomplished a miracle by building a world-class engineering team from zero, there must have been a catalyst.
- JshWright 8y agoElon Musk definitely deserves a huge share of the credit for SpaceX's success, but there have definitely been other folks who have made (and continue to make) critical contributions. 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.
- mandeepj 8y ago> there must have been a catalyst There is - having visionary, charismatic founder(s). This pattern has been successful at Apple, Microsoft, Amazon, Facebook, Netflix, Tesla\SpaceX, Google.
- 420codebro 8y ago