【尘封 57 年的代码史诗】阿波罗登月程序代码全开源:人类第一次登月,全靠这 14.5 万行汇编代码撑起
目录
一、写在前面:从月球到 GitHub,跨越半个世纪的代码史诗
二、登月代码的载体:AGC 计算机,算力不如计算器的 “航天大脑”
三、开源历程:从 NASA 最高机密到 GitHub 全民可及
3.1 解密与数字化:民间发起的代码考古
3.2 官方正式开源:从档案馆到 GitHub
3.3 开源内容覆盖
四、核心拆解:登月程序的 6 大核心模块,每一行都关乎生死
4.1 Executive 执行程序:2KB RAM 里的实时操作系统
4.2 P60 系列 着陆制导程序:月球着陆的核心灵魂
4.3 G&N 制导与导航系统:地月往返的 “导航地图”
4.4 DAP 数字自动驾驶仪:飞船的 “稳定器”
4.5 故障处理与中断系统:太空任务的 “救命保险”
4.6 雷达与传感器数据处理模块:飞船的 “眼睛和耳朵”
五、经典代码解析:改变人类历史的几行汇编代码
5.1 1202 报警核心代码:拯救登月任务的容错逻辑
5.2 着陆制导核心代码:P66 手动控制模式
六、实战教程:5 分钟在本地复刻运行阿波罗登月代码
6.1 环境要求
6.2 一键安装与运行步骤
6.3 模拟登月着陆操作
6.4 代码编译与修改
七、技术奇迹:60 年代的代码,藏着现代软件工程的终极答案
7.1 极致的资源优化,零冗余的代码设计
7.2 前瞻性的容错设计,零容错的航天级标准
7.3 模块化编程与软件工程的诞生
7.4 极致严谨的代码注释,甚至藏着工程师的彩蛋
八、写在最后:从登月代码到 AI 编程,不变的工程内核
🎁 总结速查卡
核心信息速查
核心代码模块速查
开源资源速查
一、写在前面:从月球到 GitHub,跨越半个世纪的代码史诗
2026 年是阿波罗 11 号实现人类首次登月的第 57 周年,当我们惊叹于 SpaceX 的可回收火箭、星舰的火星计划时,很少有人会想起:1969 年 7 月 20 日,把阿姆斯特朗和奥尔德林送上月球的,是一台算力还不如如今普通计算器的计算机,和 14.5 万行手写的汇编代码。
更令人震撼的是,这份曾被 NASA 列为最高机密的登月程序代码,早已完成了从 “月球任务核心机密” 到 “GitHub 全民可学习的开源史诗” 的跨越。2016 年,MIT Draper 实验室(原 MIT 仪器实验室,阿波罗制导计算机的研发方)正式将阿波罗 11 号的完整 AGC 代码开源上传至 GitHub;截至 2026 年,该仓库已斩获 12.7 万 + Star,成为 GitHub 星标最高的经典编程项目之一,被开发者称为 “人类软件工程史上的活化石”。
我之前写过 Agentic Engineering 六大核心能力、langcli 终端智能体全解析、Claude Code 全栈开发指南,见证了 AI 编程时代的效率革命;但当我逐行读完这份 57 年前的汇编代码时才发现:现代软件工程所有的先进理念,都早已被这群航天工程师写进了登月代码里。
这篇文章,我们就完整拆解这份开源的登月程序代码:从承载代码的 AGC 计算机,到开源历程,再到核心模块、经典代码解析、本地复刻实战,以及它给现代编程带来的终极启示。
二、登月代码的载体:AGC 计算机,算力不如计算器的 “航天大脑”
所有登月程序代码,都运行在阿波罗制导计算机(Apollo Guidance Computer, AGC)上 —— 这是人类历史上第一台集成电路计算机,也是当时世界上最小、最先进的数字计算机,更是阿波罗登月任务的绝对核心大脑。
它负责飞船的姿态控制、轨道计算、着陆制导、故障处理,全程主导从地球到月球、再从月球返回地球的全流程制导任务。但以今天的眼光来看,它的硬件参数简陋到难以想象:
表格
| 硬件参数 | 阿波罗 AGC 计算机 | 2026 年普通家用计算器 | 2026 年普通 PC |
|---|---|---|---|
| 主频 | 1.024 MHz | 约 10 MHz | 3.0 GHz+ |
| 内存 RAM | 2048 字(约 3KB,磁芯存储器) | 32KB+ | 16GB+ |
| 只读存储器 ROM | 36864 字(约 72KB,绳存储器) | 1MB+ | 1TB+ |
| 字长 | 15 位(1 位奇偶校验) | 32 位 | 64 位 |
| 运算能力 | 每秒约 8 万次加法运算 | 每秒百万次运算 | 每秒万亿次浮点运算 |
就是这样一台算力连如今 10 块钱的计算器都不如的计算机,要完成载人登月的全流程制导任务,容错率为 0—— 任何一行代码出错、一个计算失误,都可能导致宇航员永远留在太空。而这一切的极限挑战,都靠 14.5 万行手写的汇编代码来实现。
这份代码的核心负责人,是玛格丽特・汉密尔顿(Margaret Hamilton)—— 软件工程领域的先驱,正是她带领 MIT 的 100 人工程师团队,完成了 AGC 软件的全量开发,也正是她在项目中首次提出了 “软件工程” 这个概念,彻底改变了软件行业的发展轨迹。
三、开源历程:从 NASA 最高机密到 GitHub 全民可及
这份登月代码的开源之路,跨越了整整 47 年,是一群技术爱好者与官方机构共同完成的 “代码考古” 壮举:
3.1 解密与数字化:民间发起的代码考古
1969 年登月任务完成后,AGC 的全部代码、设计文档都被 NASA 列为机密档案,仅在航天系统内部流转。直到 1970 年代,随着阿波罗计划结束,相关文档才逐步解密,向公众开放查阅权限,但仅能在 NASA 档案馆查看纸质扫描件,没有可执行的数字化代码。
2003 年,程序员Ron Burkey发起了Virtual AGC开源项目,开始了漫长的代码考古工作:他逐页扫描 NASA 档案馆里的 AGC 代码纸质清单,手动转录、校对、数字化,还原出可编译、可运行的 AGC 代码,同时开发了 AGC 模拟器,让普通人能在现代计算机上运行这份 50 年前的登月程序。
3.2 官方正式开源:从档案馆到 GitHub
2016 年 7 月,MIT Draper 实验室(原 MIT 仪器实验室,AGC 的研发方)正式将阿波罗 11 号、阿波罗 12 号的完整 AGC 源代码,上传至 GitHub 官方仓库,完成了官方开源。仓库中不仅包含完整的汇编源代码,还有原始的代码清单扫描件、设计文档、注释说明,甚至保留了当年工程师手写的注释、吐槽、彩蛋。
开源仓库地址:https://github.com/chrislgarry/Apollo-11https://github.com/chrislgarry/Apollo-11
截至 2026 年,该仓库已累计获得 12.7 万 + Star,1.8 万 + Fork,成为 GitHub 上最受欢迎的经典编程项目,不仅有开发者持续维护、更新模拟器,还衍生出了 AGC 代码教学、复刻、硬件还原等一系列衍生项目。
3.3 开源内容覆盖
官方开源的内容,完整覆盖了阿波罗计划的全任务代码:
- 阿波罗 11 号:登月舱(LM)与指令舱(CM)的完整 AGC 代码
- 阿波罗 12 号 - 阿波罗 17 号:各次任务的迭代版 AGC 代码
- 完整的汇编代码清单、原始扫描件、设计文档
- 配套的汇编器、模拟器、调试工具
- 当年工程师的开发日志、注释、故障处理记录
四、核心拆解:登月程序的 6 大核心模块,每一行都关乎生死
开源的 AGC 代码,采用的是专门为 AGC 计算机设计的汇编语言,分为核心系统程序和任务应用程序两大层,总计 14.5 万行代码,其中 6 大核心模块,直接决定了登月任务的成败。
4.1 Executive 执行程序:2KB RAM 里的实时操作系统
这是 AGC 的内核,也是人类历史上最早的实时抢占式多任务操作系统之一,它要在仅 3KB 的 RAM 里,实现多任务调度、优先级管理、中断处理,是整个 AGC 软件的 “大脑中枢”。
核心能力:
- 支持 8 个优先级的任务调度,高优先级任务可抢占低优先级任务的 CPU 资源
- 管理所有硬件中断,处理传感器、雷达、操作面板的实时信号
- 内存资源管理,在 2048 字的 RAM 里,实现任务间的内存隔离与复用
- 故障监控与降级处理,当 CPU 过载时,自动丢弃低优先级任务,保障核心制导功能正常运行
登月史上最关键的作用:阿波罗 11 号着陆过程中著名的1202/1201 报警,正是这个模块的容错机制救了整个任务。当时着陆雷达的数据涌入,导致 CPU 过载,Executive 程序自动丢弃了 “雷达数据显示” 等低优先级任务,保住了着陆制导、姿态控制等核心功能,让登月任务得以继续。
4.2 P60 系列 着陆制导程序:月球着陆的核心灵魂
这是登月舱着陆阶段的核心程序,也是整个 AGC 代码中最复杂、最关键的部分,分为 P63、P64、P66 三个核心子模块,全程主导从绕月轨道到月面着陆的全过程。
表格
| 程序模块 | 核心作用 | 登月任务中的关键表现 |
|---|---|---|
| P63 | 制动接近阶段 | 控制登月舱减速,从绕月轨道进入着陆轨道,精准对准着陆区 |
| P64 | 最终着陆阶段 | 自动控制着陆器的下降速度、姿态,实时计算着陆点,完成精准着陆 |
| P66 | 手动姿态控制模式 | 阿姆斯特朗发现预定着陆区布满陨石坑后,切换到该模式,手动控制着陆器姿态,完成了人类首次月面着陆 |
这个模块的代码,包含了完整的轨道动力学计算、引力模型、推进器控制逻辑,要在 1MHz 的主频下,实时更新着陆器的位置、速度、姿态,每一个计算周期的误差,都可能导致着陆失败。
4.3 G&N 制导与导航系统:地月往返的 “导航地图”
G&N(Guidance & Navigation)模块是整个任务的导航核心,负责计算飞船的实时位置、速度、轨道参数,从地球发射、地月转移、绕月飞行、月面着陆、月面起飞、月地返回、再入大气层,全流程的导航计算都由这个模块完成。
核心能力:
- 基于惯性测量单元(IMU)的传感器数据,实时解算飞船的姿态与位置
- 轨道参数计算,提前规划地月转移轨道、绕月轨道、返回轨道
- 星光导航校准,通过观测恒星位置,修正惯性导航的累积误差
- 再入大气层的弹道计算,精准控制飞船的再入角度,避免烧毁或弹回太空
4.4 DAP 数字自动驾驶仪:飞船的 “稳定器”
DAP(Digital Auto-Pilot)数字自动驾驶仪,负责飞船的姿态稳定与推进器控制,无论是指令舱的绕月飞行,还是登月舱的着陆过程,飞船的每一次姿态调整、推进器点火,都由这个模块精准控制。
它要解决的核心问题:飞船在太空中处于失重状态, slightest 的推进器点火都会导致姿态变化,DAP 要以 20 次 / 秒的频率,实时读取姿态传感器数据,计算推进器的点火时长、方向,确保飞船始终保持在预定姿态,哪怕是宇航员手动操作,也要经过 DAP 的平滑处理,避免操作失误。
4.5 故障处理与中断系统:太空任务的 “救命保险”
这是 AGC 代码中最具前瞻性的模块,也是现代软件工程容错设计的鼻祖。阿波罗计划的工程师们提前预判了上百种可能出现的故障场景,为每一种故障都编写了对应的处理逻辑,从传感器失效、CPU 过载,到推进器故障、导航数据异常,都有完整的降级、备份、应急处理方案。
最经典的就是 1202/1201 报警的处理逻辑:代码提前定义了 “CPU 过载” 的故障场景,预设了 “丢弃低优先级任务,保障核心功能” 的处理方案,才让阿波罗 11 号的着陆任务没有因为报警而中止。
4.6 雷达与传感器数据处理模块:飞船的 “眼睛和耳朵”
这个模块负责对接飞船上所有的传感器、雷达、操作面板,包括惯性测量单元、着陆雷达、 rendezvous 雷达、星光望远镜、宇航员操作面板,实时读取、校验、过滤传感器数据,传递给制导、导航、自动驾驶模块。
它的核心挑战:传感器数据可能存在噪声、延迟、错误,模块要在极短的时间内完成数据校验、滤波、异常值剔除,确保传递给核心模块的数据是准确的,不能因为一个错误的传感器数据,导致制导计算失误。
五、经典代码解析:改变人类历史的几行汇编代码
开源的 AGC 代码中,有几段代码直接决定了人类登月的成败,我们逐行解析,看看 57 年前的航天工程师,是如何在极致受限的硬件下,写出零容错的航天级代码。
5.1 1202 报警核心代码:拯救登月任务的容错逻辑
阿波罗 11 号着陆过程中,着陆舱的计算机连续触发 1202 报警,地面指挥中心最终给出了 “继续着陆” 的指令,背后就是这段提前写好的容错代码。
1202 报警的本质:Executive 程序检测到 CPU 过载,无法在一个执行周期内完成所有调度任务,触发了 “任务溢出” 告警。而代码的核心逻辑,是自动丢弃低优先级任务,保障核心制导功能正常运行。
以下是开源代码中,Executive 程序的核心调度代码(AGC 汇编,带注释翻译):
assembly
; 阿波罗AGC Executive程序 核心任务调度代码 ; 功能:优先级抢占式调度,CPU过载时自动丢弃低优先级任务 ; 作者:MIT仪器实验室 1969年 ; 对应1202报警的核心处理逻辑 ; 任务优先级表,8个优先级,数字越小优先级越高 PRIORITY_TABLE: 2DEC 0 ; 优先级0:着陆制导核心程序(最高优先级) 2DEC 1 ; 优先级1:姿态控制自动驾驶仪 2DEC 2 ; 优先级2:导航数据计算 2DEC 3 ; 优先级3:雷达数据处理 2DEC 4 ; 优先级4:宇航员操作面板响应 2DEC 5 ; 优先级5:遥测数据回传 2DEC 6 ; 优先级6:系统状态显示 2DEC 7 ; 优先级7:冗余数据备份(最低优先级) ; 核心调度循环 EXECUTIVE_LOOP: TS Q ; 保存当前程序计数器 CCS A ; 检查当前CPU负载 TC OVERFLOW_HANDLER ; 负载超标,跳转到过载处理 TC NO_OVERFLOW ; 负载正常,执行正常调度 ; 过载处理核心逻辑(1202报警触发入口) OVERFLOW_HANDLER: CAF PRIORITY_THRESHOLD ; 加载优先级阈值 COMP CURRENT_TASK_PRIORITY ; 对比当前任务优先级 TC DROP_LOW_PRIORITY ; 优先级低于阈值,丢弃任务 TC EXECUTE_HIGH_PRIORITY ; 优先级高于阈值,强制执行 ; 丢弃低优先级任务,释放CPU资源 DROP_LOW_PRIORITY: CAF ALARM_CODE_1202 ; 加载1202报警码 TS ALARM_REGISTER ; 触发1202报警,通知宇航员 TC EXECUTIVE_LOOP ; 返回调度循环,只执行高优先级任务 ; 正常执行高优先级任务 EXECUTE_HIGH_PRIORITY: TC TASK_EXECUTE ; 执行当前任务 TC EXECUTIVE_LOOP ; 执行完成,返回调度循环代码核心亮点:
- 提前预设了优先级分层,核心制导功能永远处于最高优先级,哪怕系统过载,也不会被中断;
- 过载时不是直接崩溃,而是主动降级,丢弃非核心任务,同时触发报警通知宇航员,实现了 “告警不宕机”;
- 整个调度逻辑仅用了几十行汇编代码,占用极少的 ROM 和 RAM 资源,极致精简。
正是这段代码,让阿波罗 11 号在连续触发 1202 报警的情况下,依然保障了着陆制导功能的正常运行,最终完成了人类首次登月。
5.2 着陆制导核心代码:P66 手动控制模式
阿姆斯特朗在发现预定着陆区布满陨石坑后,果断切换到 P66 手动控制模式,最终完成了安全着陆。以下是 P66 模式的核心控制代码片段:
assembly
; P66 手动姿态控制模式 核心代码 ; 功能:接收宇航员手动操作输入,平滑控制着陆器姿态,保障手动着陆安全 ; 登月任务中,阿姆斯特朗通过该模式完成了人类首次月面着陆 P66_ENTRY: CAF MANUAL_MODE_FLAG ; 开启手动模式标志 TS CONTROL_MODE_REG ; 设置控制模式为手动 CAF DAP_SMOOTH_FACTOR ; 加载自动驾驶平滑系数 TS DAP_CONFIG_REG ; 配置自动驾驶仪为手动辅助模式 ; 手动控制输入读取循环 P66_INPUT_LOOP: CS HAND_CONTROL_X ; 读取宇航员X轴操作杆输入 TS DAP_X_INPUT ; 传递给自动驾驶仪 CS HAND_CONTROL_Y ; 读取Y轴操作杆输入 TS DAP_Y_INPUT ; 传递给自动驾驶仪 CS HAND_CONTROL_Z ; 读取Z轴操作杆输入 TS DAP_Z_INPUT ; 传递给自动驾驶仪 ; 着陆器姿态实时控制 P66_ATTITUDE_CONTROL: TC DAP_ATTITUDE_CALC ; 调用自动驾驶仪,计算姿态调整量 TC THRUSTER_CONTROL ; 控制推进器点火,调整姿态 TC LANDING_RADAR_UPDATE ; 更新着陆雷达高度、速度数据 TC ALTITUDE_DISPLAY ; 给宇航员显示当前高度、下降速度 ; 着陆检测逻辑 P66_LANDING_CHECK: CCS LANDING_CONTACT_SIGNAL ; 检测着陆腿接触信号 TC LANDING_SUCCESS ; 接触月面,触发着陆成功流程 TC P66_INPUT_LOOP ; 未着陆,返回输入循环,持续控制 ; 着陆成功处理 LANDING_SUCCESS: CAF ENGINE_SHUTDOWN_FLAG ; 关闭下降发动机 TS ENGINE_CONTROL_REG ; 执行发动机关闭 CAF LANDING_SUCCESS_ALARM ; 触发着陆成功提示 TS ALARM_REGISTER ; 通知宇航员着陆成功 TC POST_LANDING_PROCESS ; 跳转到着陆后流程这段代码的核心设计,是手动操作 + 自动驾驶辅助的融合:宇航员只需要给出操作方向,自动驾驶仪会自动完成平滑的姿态调整、推进器控制,避免手动操作的失误,最终让阿姆斯特朗在仅剩 15 秒燃料的情况下,完成了安全着陆。
六、实战教程:5 分钟在本地复刻运行阿波罗登月代码
很多人觉得这份 57 年前的汇编代码只能看不能跑,其实借助开源的 Virtual AGC 模拟器,我们可以在现代电脑上,一键复刻运行阿波罗登月的完整程序,甚至模拟登月着陆的全过程。
6.1 环境要求
- 操作系统:Windows/macOS/Linux 全平台支持
- 依赖:Git、GCC 编译器、Python 3.8+
6.2 一键安装与运行步骤
bash
运行
# 步骤1:克隆Virtual AGC开源仓库 git clone https://github.com/virtualagc/virtualagc.git cd virtualagc # 步骤2:编译安装AGC汇编器与模拟器 # macOS/Linux make all # Windows(WSL2) make all # 步骤3:运行阿波罗11号登月舱AGC程序 ./yaAGC --core=Apollo11/Luminary099/Luminary099.bin --cfg=Apollo11/Luminary099/Luminary099.ini # 步骤4:打开DSKY模拟面板(宇航员操作面板) # 新开一个终端,执行 ./yaDSKY2 --cfg=Apollo11/Luminary099/Luminary099.ini6.3 模拟登月着陆操作
运行成功后,你会看到阿波罗登月舱的 DSKY 操作面板,这正是当年阿姆斯特朗和奥尔德林在登月舱里操作的面板复刻版。你可以通过面板输入指令,模拟登月着陆的全过程:
- 输入
V37E,选择程序编号63E,进入 P63 接近月面程序; - 输入着陆参数,启动自动接近程序,模拟登月舱减速接近月面;
- 输入
V37E 66E,切换到 P66 手动控制模式,模拟阿姆斯特朗的手动着陆操作; - 面板上会实时显示当前高度、下降速度、姿态数据,完全复刻当年的登月过程。
6.4 代码编译与修改
如果你想修改、编译 AGC 代码,也可以通过以下命令完成:
bash
运行
# 进入阿波罗11号登月舱代码目录 cd Apollo11/Luminary099 # 编译AGC汇编代码 ../yaASM/bin/yaASM Luminary099.agc # 编译成功后,生成新的.bin文件,即可加载到模拟器中运行七、技术奇迹:60 年代的代码,藏着现代软件工程的终极答案
当我们逐行读完这份开源的登月代码,会发现一个令人震撼的事实:我们今天在软件工程领域推崇的所有先进理念,都早已被这群航天工程师在 1969 年,用汇编代码完美实现了。
7.1 极致的资源优化,零冗余的代码设计
在 72KB ROM、3KB RAM 的极致受限环境下,工程师们把每一个 bit 的资源都用到了极致:
- 代码里没有一行冗余指令,每一个寄存器、每一个内存地址都被反复复用;
- 用绳存储器(ROM)存储代码,每一个 bit 都由女工手工编织铜线实现,1 就是穿过去,0 就是绕过去,不允许任何一行错误代码;
- 为了节省内存,甚至把两个 15 位的数,压缩到一个 30 位的存储单元里,实现了 “一个地址存两个数” 的极致优化。
对比今天的 AI 编程时代,很多人用 Vibe Coding 生成的代码,动辄几百 KB 冗余内容,不考虑内存、性能开销,这份 57 年前的代码,给我们上了最生动的一课:软件工程的本质,是在有限的资源里,实现最优的功能与可靠性。
7.2 前瞻性的容错设计,零容错的航天级标准
登月代码最令人惊叹的,不是它实现了多么复杂的功能,而是它提前预判了所有可能出现的故障,为每一个错误都写好了处理方案。
在阿波罗计划中,工程师们遵循一个核心原则:任何一个单点故障,都不能导致任务失败,更不能威胁宇航员的生命。这份代码里,上百种故障场景都有对应的降级、备份、应急处理逻辑,哪怕是 CPU 过载、传感器失效、雷达数据错误,系统都能继续运行,保障核心功能正常。
这正是现代软件工程最核心的高可用设计理念,而 57 年前的航天工程师,用汇编代码在算力极致受限的计算机上,完美实现了这一点。
7.3 模块化编程与软件工程的诞生
玛格丽特・汉密尔顿在开发 AGC 软件的过程中,首次提出了 “软件工程” 这个概念,而这份代码,正是模块化编程的经典范本。
整个 AGC 代码,被拆分为独立的核心模块,每个模块负责单一功能,模块间通过标准化的接口调用,低耦合、高内聚,哪怕一个模块出现故障,也不会影响其他模块的运行。这种设计思想,直到今天依然是我们构建大型软件系统的核心准则。
7.4 极致严谨的代码注释,甚至藏着工程师的彩蛋
开源的代码里,每一个子程序、每一段关键逻辑,都有清晰、详细的注释,哪怕是第一次接触 AGC 汇编的开发者,也能通过注释理解代码的作用。
更有趣的是,代码里还藏着当年工程师们的手写注释和彩蛋:
- 有一段代码的注释写着:“这里是月球着陆的最后一公里,愿上帝与我们同在”;
- 错误处理模块的注释里写着:“如果这里触发了,那我们就完蛋了,但还是写了处理逻辑”;
- 甚至有一段代码的注释,是工程师对 NASA 管理层的吐槽,被完整保留在了开源代码里。
这些注释,让这份冰冷的汇编代码,有了温度,也让我们看到了当年那群工程师,在人类最伟大的航天任务里,严谨又浪漫的一面。
八、写在最后:从登月代码到 AI 编程,不变的工程内核
2026 年的今天,AI 编程已经全面普及,我们用 Claude Code、Cursor 可以在几分钟内生成上万行代码,效率是 57 年前的航天工程师的上万倍。但当我们看完这份登月代码就会发现:软件工程的本质,从来都没有变过。
当年的工程师,用 14.5 万行手写汇编代码,在算力不如计算器的计算机上,完成了人类登月的壮举,靠的不是先进的工具,而是严谨的工程思维、极致的可靠性设计、对每一行代码负责的态度。
而今天,很多人沉迷于 Vibe Coding 的 “魔法体验”,只关注代码能不能跑起来,却忽略了代码的可靠性、可维护性、容错设计,最终写出的 Demo 好看,上线就崩。这也是为什么 Andrej Karpathy 会说:“Vibe Coding 只是过渡,真正的未来是 Agentic Engineering”—— 而 Agentic Engineering 的核心,正是回归软件工程的本质:可靠、可控、可维护、零容错。
这份开源的登月代码,不仅是人类航天史上的史诗,更是软件工程史上的活化石。它告诉我们:无论工具怎么迭代,算力怎么提升,软件工程的内核永远不变 —— 对每一行代码负责,对每一个故障场景预判,在有限的资源里,实现最可靠的功能。
🎁 总结速查卡
核心信息速查
| 项目 | 关键信息 |
|---|---|
| 代码名称 | 阿波罗制导计算机 AGC 汇编代码 |
| 代码规模 | 14.5 万行手写汇编代码 |
| 运行硬件 | 1.024MHz 主频、3KB RAM、72KB ROM |
| 开源时间 | 2016 年 MIT 官方 GitHub 开源 |
| 核心负责人 | 玛格丽特・汉密尔顿(软件工程先驱) |
| 核心历史意义 | 人类首次登月的核心软件,首次提出 “软件工程” 概念 |
核心代码模块速查
| 模块名称 | 核心作用 | 登月关键贡献 |
|---|---|---|
| Executive 执行程序 | 实时多任务操作系统内核 | 1202 报警容错处理,保障核心功能运行 |
| P60 系列着陆程序 | 月面着陆制导核心 | 阿姆斯特朗手动着陆模式,完成人类首次月面着陆 |
| G&N 导航系统 | 地月往返轨道导航 | 全任务轨道计算、位置解算 |
| DAP 自动驾驶仪 | 飞船姿态稳定控制 | 精准控制飞船姿态,保障飞行稳定 |
开源资源速查
| 资源名称 | 链接 |
|---|---|
| 阿波罗 11 号 AGC 代码官方仓库 | https://github.com/chrislgarry/Apollo-11 |
| Virtual AGC 模拟器项目 | https://github.com/virtualagc/virtualagc |
| AGC 代码官方文档与设计资料 | https://www.ibiblio.org/apollo/ |
系列文章:
- Agentic Engineering 六大核心能力全解析
- langcli 终端智能体全解析
- Claude Code 必装的十大 Skills
- CC Switch 全解析:Claude Code 王炸功能
参考链接:
- NASA 阿波罗计划 AGC 官方档案
- MIT Draper 实验室阿波罗计划开源公告
- 玛格丽特・汉密尔顿与软件工程的诞生
- Virtual AGC 项目官方文档
