内存不到100KB,一台老电脑怎么把人送上月球

内存不到100KB,一台老电脑怎么把人送上月球

apollohardwareopen-sourceengineering

数据源:Raspberry Pi + HN

内存不到 100KB,主频只有 1.024MHz。打开一张动图消耗的临时空间,足够塞满好几台阿波罗制导计算机(AGC)。现代人习惯了数十吉字节的内存环境。在普遍直觉中,复杂的深空探测必须依靠海量硬件算力。

1969 年升空的阿波罗 11 号打破了这种偏见。飞船指令舱与登月舱各装有一台 AGC,算力仅与后来的 Apple II 相当。没有现代图形界面,宇航员全靠手工按键调度。两台老机器完成了轨道交会与登月点火全流程。

阿波罗登月向工程界证明了一个朴素事实。系统的能力上限来自把软件精简到物理极限的工程手艺。半个世纪后,加拿大航电工程师牛顿动手复刻。他在书桌上用开源硬件重新唤醒了这台老机器。

航电工程师在书桌上造出阿波罗控制台

迈克尔·牛顿平时负责维护商用飞机的航空电子设备。他在业余时间启动了名为「Recreate Apollo」的开源项目。他的目标是在写字台上以 1:1 的真实尺寸,复原操作飞船的核心界面——DSKY(显示与键盘单元)。

复刻的 DSKY 键盘显示器 图:复刻的 DSKY 外壳,外形尽量贴近原件,像刚从飞船里拆下来。来源:Raspberry Pi

复刻外壳由多块 3D 打印件拼接而成。表面喷涂了哑光军灰色车漆,发光指示灯几乎可以乱真。驱动这套复古面板的心脏是一块树莓派单板电脑。树莓派内部运行着模拟器,跑的是当年阿波罗 13 号飞船指令舱的同款软件。

牛顿在《树莓派官方杂志》第 171 期中解释了选用树莓派的缘由。这块微型板卡功耗低且发热可控,能长期封闭在打印壳体内运转。板载网络方便开发者远程调试。操作系统还能打包成现成镜像,方便其他人直接刷卡使用。

不到100KB内存扛起飞船导航全程

麻省理工学院仪器实验室早在 1966 年就交付了初版。这比阿姆斯特朗踏上月球早了三年。漫长的前置研发迫使团队在未成熟的芯片与苛刻的重量间妥协。AGC 由此成为首台采用硅集成电路的计算机,吃掉了全美近六成的芯片产能。

在芯片产量稀少的年代,计算机内存被压缩到惊人地步。整机仅有约 4KB 的可读写内存,用于保存即时飞行数据。用于存储导航程序的只读存储器也不过数十 KB。两者合计不到 100KB,却要同时支撑姿态解算、点火预估与轨迹修正。

宇航员与计算机的交互语言同样被精简到极点。屏幕上没有像素概念,只有发光管拼出的数字与代码。宇航员查看轨道参数,必须依次输入动词代码与名词代码。这套机制剥离了所有装饰性开销,把宝贵资源全留给飞行动力学方程。

把软件裁到物理极限才能飞向太空

硬件面临严苛边界,团队被迫发明了超前的软件架构。为了防止代码因断电或太空辐射而丢失,程序被物理固化在磁芯绳内存中。工人拿着织针,手动将细铜线穿过环形磁芯:穿过代表 1,绕过代表 0。这种手工织就的只读存储器密度超过芯片,在物理上天然具备抗震与抗辐射能力。

更为精妙的是任务调度逻辑。工程师哈尔·兰宁为这台小机器设计了抢占式调度算法。在阿波罗 11 号降落到月面附近时,雷达意外涌入海量无效信号。计算机内部队列瞬间被占满,系统连续发出「1202」与「1201」报警。

现代系统遇到这种突发过载往往会整体死机。AGC 的调度器却瞬间做出取舍,果断丢掉刷新雷达这类低优先级任务。中央处理器把算力全留给推进发动机的姿态控制。舍弃次要计算保住了飞船姿态,阿波罗 11 号最终平稳降落。

翻译尘封图纸并开源百页制作指南

所有打印件都照着归档的 NASA 图纸建模 图:所有打印件都照着归档的 NASA 图纸建模。来源:Raspberry Pi

复原这台老仪器耗费了大量心血。爱好者们依据信息公开法规,向官方索取到原始工程图纸。这批珍贵扫描件由 Virtual AGC 团队归档保存。志愿者随后耗费数月,逐份将其转化为现代工程软件能识别的三维模型。

牛顿在创客同行埃里克的研究基础上接过了接力棒。他补齐了缺失的图纸部件,对手工建模的零件反复试错。为了适配当代元器件的尺寸,牛顿做出了务实的工程调整。外壳维持了约 90% 的历史忠实度,内部卡扣与键帽字体则根据打印精度微调。

开源的 CAD 模型与指南 图:CAD 模型、电路图与 100 页组装指南在 GitHub 上免费开放。来源:Raspberry Pi

牛顿将全套成果以开源形式公开发布。除了三维模型与电路图,他还整理出一份厚达 100 页的组装指南。详尽的工艺拆解让普通爱好者也能在工坊里复现航天设备。原本锁在博物馆玻璃柜里的技术中枢,变成了大众触手可及的硬件教具。

算力过剩时代更需要极简工程哲学

当代软件生态正陷入前所未有的膨胀怪圈。智能手机动辄配备 12GB 运行内存,应用软件却频频因代码冗余而卡顿。开发者习惯了引入无数层现成的依赖库。显示一个简单的文本窗口,往往需要消耗数百兆内存空间。

复刻阿波罗计算机为现代人提供了一面镜子。它用冰冷的物理事实提醒技术从业者。人类最远的一场深空探索,并不依赖庞大的硬件规格。真正的工程底气在于清醒取舍,把有限资源砸在最关键的逻辑路径上。

只有 1.024MHz 主频的古董机能飞往月球。现代系统理应反思那些臃肿的代码体系。算力只是执行逻辑的载体,无法掩盖架构设计本身的缺陷。唯有对资源保持克制与敬畏,工程系统才能在复杂的现实环境中保持稳健。

参考链接:

  • Raspberry Pi 官方报道
  • Virtual AGC 项目历史档案
  • Recreate Apollo 开源硬件指南