Recorded at Domain-Driven Design 2016, January 26-29, Brussels
Brian Troutwine is a software engineer with a focus on fault tolerant, real-time and critical systems. His professional focus is in automated control in domains where human interaction is too slow but human oversight of machines is paramount. Brian has previously spoken on telemetry gathering and interpretation at Erlang Factory Berlin and on the design of functional languages at QCon San Francisco. He is a senior engineer on the AdRoll Real-Time Bidding project.
The Apollo Guidance Computer was a sophisticated fly-by-wire system, interactive with flight crew, with mission control and capable of automatic flight as directed. It was a general purpose, integrated-circuit computer and the programming group for the machine invented wholesale many modern techniques of critical embedded software. This machine whose function was so sophisticated, whose programming environment admitted modern techniques was made of hand-threaded ropes of copper, had a mere 36,864 words of memory and a 2MHz clock. Astronauts were limited to the DSKY, a numeric display and keypad that comprised the whole of their UI.
Even so, Astronauts came to regard the AGC as another crew member, as helpful and trustworthy as their human compatriots. In every Apollo flight the Guidance Computer fulfilled its vital role.
In this talk we'll examine the architecture of the Apollo Guidance Computer and how its software engineers coaxed a limited device into doing so much. We'll explore how AGC integrated with the flight hardware and how the evolution in the spacecraft and evolving mission demands changed the AGC. Though the hardware is archaic, we'll see that the techniques invented to program it and the overall system integration designs are perfectly in step with and of interest to our own time.