How They Built the Software of Apollo 11
LinuxScribe tips a piece up at Linux.com with inside details on the design and construction of the Apollo 11 code. There are some analogies to open source development but they are slim. MIT drafted the code — to run on the Apollo Guidance Computer, a device with less grunt than an IBM XT — it had 2K of memory and a 1-MHz clock speed. It was an amazing machine for its time. NASA engineers tested, polished, simulated, and refined the code. "The software was programmed on IBM punch cards. They had 80-columns and were 'assembled' to instruction binary on mainframes... and it took hours. ... During the mission, most of the software code couldn't be changed because it was hard-coded into the hardware, like ROM today... But during pre-launch design simulations, problems that came up in the code could sometimes be finessed by... computer engineers using a small amount of erasable memory that was available for the programs. The software used a low-level assembly language and was controlled using pairs or segments of numbers entered into a square-shaped, numeric-only keyboard called a Display and Keyboard Unit... The two-digit codes stood for 'nouns' or 'verbs,' and were used to enter commands or data, such as spacecraft docking angles or time spans for operations." Reader Smark adds, "The Google Code Blog announced today that the Virtual AGC and AGS project has transcribed the Command Module and Lunar Excursion Module code used during the Apollo 11 moon landing. The code is viewable at the VirtualAGC Google Code Page."
Wow. They sure went out of their way to fake the moon landing. I bet the source-code is fake too :-P
Y
I think I just had a geekgasm.
My ism, it's full of beliefs.
For Vista, the following steps may need to be performed manually after installation:
1.
2.
-- README.txt
Wow, even rocket scientists don't know how to make code work on Vista.
As some one old enough to enter raw hex in to a hex keypad on a machine with an LED display having hand assembled the code in the back of her math exercise book during a math lesson (when I should have been learning stats) this doesn't sound too different.
...was the first flight to land in terrain where the descent trajectory had to be designed to avoid high altitude terrain. By that I mean they had to fly over a mountain, then into a valley for the landing.
The terrain model in the PNGS had five vectors in memory to represent terrain. Back in those days, RAM was expensive.
http://michaelsmith.id.au
http://embedded.com/columns/technicalinsights/218401508?pgno=1
"Calculating trajectories for Apollo program"
"Jack Crenshaw describes what he and team members did to research trajectories for the Apollo missions."
In those days we had to program the computer the size of a school bus strapped to our backs while trudging through the waist deep snow, for five miles one way, uphill both ways, without mittens while the politicians were whipping us yelling, "you don't want the Ruskies to win, do you?", those were the days boys. Now these young whippersnappers are using laptops with 8 Gigs of RAM and still could not write a simple javascript engine with a just in time debugger without creating a buffer overflow vulnerability while fed very long unicode strings.... bah... now get off my lawn.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Shoehorning a piece of software into an "open source" angle really doesn't do any justice to open source or the software you're writing about.
Instead of writing about open source software, write about good software that happens to be open source. If there is really good software where we know something about the code, like this Apollo software, then write about that. Discuss the collaborative development the engineers did, talk about the open source clone over at Google Code, but calling this "like opensource but only for NASA" is a massive distraction.
Journey to the Moon: The History of the Apollo Guidance Computer
by Eldon C. Hall
ISBN: 156347185X
If anyone is ever in the Mountain View area the Computer History Museum has one of them on display.
Richard Feynman's book 'What Do You Care What Other People Think?' also mentions the software development scheme used for space shuttle hardware in the context of the Rogers Commission report on the Challenger accident.
ISBN: 0393320928
1: Download the excellent sim Orbiter:
http://orbit.medphys.ucl.ac.uk/
2: Download the Apollo addon NASSP:
http://nassp.sourceforge.net/wiki/Main_Page
3: Download the virtual AGC/AGC software:
http://www.ibiblio.org/apollo/
4: ?????
(Literally, spend hours trying to figure out how to fly, how to get into orbit, reading the detailed manuals, etc etc etc)
5: Profit!
Next time you think you have a tight deadline:
"Final exam (for the advanced student)
Prior to the descent of Apollo 14's LM to the lunar surface, a short in the LM control panel caused the abort switch to be triggered intermittently. If this actually happened during the landing, an abort would have automatically occurred (meaning that the lower stage of the LM would have been jettisoned and the upper stage would have blasted back into space). No landing would have been possible, and the astronauts would have faced the grave situation of needing rescue by the command module. It was therefore necessary, in the orbit or two before descent, for the some of the software designers to work out a fix for this problem that allowed a software lockout of the abort switch during the initial phase of the descent, but also allowed reenabling the abort switch later in the descent, in case the astronauts needed to use it. They did, in fact, work out such a fix. Your mission, should you choose to accept it, is this: Work out such a fix and send it to me. Remember, your fix can only involve erasable memory, since the core-rope containing the program cannot be altered. The fix needs to be keyed in at the DSKY by the astronauts. You have about 90 minutes to figure it out. Go!"
http://www.ibiblio.org/apollo/index.html#Final_exam_for_the_advanced_student_
A few years ago I read an excellent article on how NASA develops software for the space shuttle. It focuses on the development process. The article is quite long, but well written, informative and entertaining. Read it here: http://www.fastcompany.com/magazine/06/writestuff.html?page=0%2C3
This guy wins the ubergeek crown of all time. He actually built a fully functional version of an AGC out of discrete IC chips. Granted, it is not a true AGC clone, since the exact chips could not be procured in 2000-2004, but he did build a functional workalike of the AGC out of individual TTL chips, and wrote two software emulators, and got his modernized hardware reproduction AGC to run actual original AGC machine code software.