We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Software archaeology - Learning from the landing on the moon! by Tobias Voss
Discover how the Apollo Guidance Computer pioneered modern software concepts & what we can learn from its development. From error handling to testing - moonshot lessons for today.
-
The Apollo Guidance Computer (AGC) was one of the first embedded computers, extremely lightweight (32kg) and compact for its time while running on only 55 watts
-
Hardware limitations were severe: 4KB RAM, 72KB ROM, 16-bit architecture, and only 2MHz clock speed - yet achieved 9 digits of decimal precision for critical calculations
-
The AGC pioneered several key software concepts:
- Real-time operating system with priority-based task scheduling
- Virtual machine architecture with an interpreter
- Hardware error checking through parity bits
- Cooperative multitasking
- Memory virtualization
-
The software development team led by Margaret Hamilton:
- Coined the term “software engineering”
- Prioritized robust error handling and fault tolerance
- Conducted extensive simulation testing
- Implemented iterative design improvements across missions
-
The AGC interface (DSKY) used a verb-noun input system allowing astronauts to:
- Monitor critical flight data
- Input commands and override automated systems
- Respond to program alarms
- Switch between different navigation modes
-
Famous 1202/1201 program alarms during Apollo 11 landing demonstrated the computer’s ability to handle errors gracefully by discarding low-priority tasks
-
The project’s success was enabled by:
- Clear mission goals
- High level of funding (4% of US budget)
- Extensive testing and simulation
- Focus on reliability and fault tolerance
- Skilled engineering teams
-
Many concepts pioneered in the AGC development are still relevant:
- The importance of robust error handling
- Value of abstraction and virtualization
- Need for thorough testing
- Significance of human oversight of automated systems