This is a probably a 3rd hand story. I cannot now remember where I got the information and I cannot find corroboration on the web. Hopefully someone who knows more than I will confirm, expand or refute the story.

After a long and successful mission to Mars the Viking Mars Lander (1976 ) was still operating and Earth based programmers continued to enhance the mission by transmitting program modifications to the craft. At some point space in RAM (probably core) was tight and the programmers looked for code that was no longer required so that the space could be reclaimed. One piece of code was devoted to computing orbits. Having safely landed the programers reasoned that it was no longer necessary to compute orbits. They used the space occupied by the orbit computing code for their new purposes.

The lander communicated to Earth using a steerable antenna. To steer the antenna it was necessary to know where the Earth was. The easiest way to know where the Earth is, is to compute its orbit, which the craft already knew how to do as part of ability to get to Mars in the first place. The other part of the task was knowing where Mars was so as to know the direction from Mars to Earth.

The moral of this story is merely that dependencies are subtle. Software systems, at least, need to mechanize the transitive dependency relationship. The particular story is about space in RAM. The same principles apply to ‘What files can I delete to make more space?’.


I have told the story as I remember it. It is clearly wrong in detail. The Viking lander relayed its information to Earth via a companion Mars orbiter. Perhaps the orbit calculation was to know where the orbiter was. I think that I heard the story before 1997 when the Pathfinder reached Mars.
Viking 1 lander from 1976
Mars Pathfinder July 1997