The Software Behind the Mars Phoenix Lander
chromatic writes "Imagine managing a million lines of code to send over seven hundred pounds of equipment millions of miles through space to land safely on Mars and perform dozens of experiments. You have C, 128 MB of RAM, and very few opportunities to retry if you get it wrong. O'Reilly News interviewed Peter Gluck, project software engineer for NASA's Mars Phoenix Lander, about the process of writing software and managing these constraints — and why you're unlikely to see the source code to the project any time soon."
Nope. VxWorks.
These questions and more answered in TFA.
How we know is more important than what we know.
I know exactly how to do that. I program Crestron systems remotely as well as some ham radio embedded stuff. Cresron gear across the country cant be reset without paying someone to do so, and an embedded PC in the norther wild of michigan on a tower that takes a weekend to go and fix are very much the same thing.
You check, recheck, and test on the copy system. you also build in fail safes so that if your upload fails, it reverts to the old code or fails to the loader so you can upload again.
Do not look at laser with remaining good eye.
NASA releases all kinds of code. As an example, many people in the space science community rely on SPICE from JPL's Navigation and Ancillary Information Facility, and you can play from home. I think the newest version of Celestia has a CSPICE interface to get extremely accurate planetary positions and spacecraft pointings into it.
What's that have anything to do with it?
NASA has an OSI approved license:
It could probably be easier to find NASA software, and I doubt this particular software would ever be released, but there's lots of NASA software that's been released:
There's issues because much of NASA stuff is done as part of grants, and so it's officially owned by the academic / research institution that won the grant ... as such, there might be other NASA funded code that's out there, that you don't know is NASA code... at least one program (AISRP) has started a place to collect software by grantees.
I've been to NASA workshops where there's plenty of code that's being written where people would LOVE to have their software find a broader audience. At the last one, we had an hour debate on if we were allowed to release code as GPL, as that'd place restrictions on the use of the code (that derivative copies have to be open), which should not be done as the software was developed w/ federal money and as such citizens should be free to do whatever they want with it. I think someone was assigned to talk to NASA's legal department and find out what we had to do to release our code.
Build it, and they will come^Hplain.
I wouldn't call Ada obsolete. C is only good because a lot of people know C and lots of COTS parts are C. But you can't beat Ada if you need a language that was built from the ground up for mission-critical reliability.
It's called a dead man's switch and is implemented in rail locomotives, for example. A horn sounds a tone at (probably) random intervals and you must press a button within a certain amount of time or the engine is throttled to idle. Previously, you had to keep your foot on a pedal at all times but it was defeated by just putting a brick on it.
The idea is that if you're dead, you can't hit the switch, so the train you're supposed to be controlling will stop rather than plow through a stop signal at some later time and hit something or go off the track.
i am a soviet space shuttle