MEPPP 热点收录
@meppp_hot
收录
原帖正文
1969 年阿波罗 11 号飞向月球,整艘飞船的导航软件是用针线缝出来的。
字面意义上的针线。
没有半导体存储芯片,没有软盘,也没有固态硬盘。
麻省理工学院把写好的代码打在打孔纸带上,送到波士顿郊区的一家军工厂。
工人们坐在放大镜前,拿着穿了细铜线的空心钢针,把代码一针一针缝进微小的金属环里。
编完一块内存要两个月。
搞软件的工程师给这种存储器起了一个外号,叫 LOL 内存,也就是老太太(Little Old Lady)内存。
为什么人类去月球的飞船,要用针线来缝代码?当时的阿波罗导航计算机,重量被死死卡在 30 公斤左右,功耗不能超过 70 瓦。
现在随便一块廉价智能手表的算力,都能把当年的阿波罗甩开几万倍。
可在 1960 年代,微处理器根本还没发明出来。
当时普通的电脑内存叫磁芯内存。
一个绿豆大的环形磁芯,只能存 1 个比特。
如果要存下整套 72KB 的登月导航程序,计算机里得密密麻麻焊上近 60 万个磁环。
整台电脑会重得像个大铁柜,火箭根本带不动。
而且普通的磁芯内存在供电抖动或者断电时,数据随时可能丢失。
去月球的路上,要是飞船断电导致导航程序清空,宇航员就再也回不来了。
麻省理工学院的工程师想了一个办法。
既然飞船的导航程序在起飞后不需要修改,为什么不把它做成纯粹的物理只读结构?
这就是磁芯绳内存。一根细铜线穿过金属环,怎么就能变成计算机认识的 0 和 1?
这里用的是初中物理里的变压器感应原理。
工程师把几百个微小的环形磁芯排成整齐的阵列。
每个磁芯就像一个小小的甜甜圈。
工人们穿进穿出的细铜线,叫做感应线。
如果这根铜线穿过了磁芯正中间的圆孔,它就代表二进制的 1。
如果这根铜线绕开了圆孔,从磁芯的外侧走过去,它就代表二进制的 0。读取的时候非常巧妙。
计算机给其中一个磁芯通电,磁芯内部的磁场瞬间翻转。
只要有铜线从这个圆孔里穿过去,翻转的磁场就会在铜线里感应出一个微弱的电压脉冲。
传感器检测到了电压脉冲,读出来的就是 1。
要是铜线在磁芯外面,磁场根本耦合格不进去,铜线里没有感应电流,读出来的就是 0。
既然只是用来感应脉冲,一个磁芯的孔里为什么只穿一根线?
工程师算了一下,发现磁芯中间的圆孔空间还挺宽裕。
于是他们往同一个磁芯的孔里,硬生生穿过了 192 根细铜线。
一个磁芯,直接存下了 192 个比特。
原本需要近 60 万个磁环的程序,现在只用了 3072 个磁芯。
整整六个模块,严丝合缝地塞进密封机箱里,把 72KB 的登月代码全装下了。原理讲得通,做起来全靠人手。
承担制造的雷神公司,特意跑到马萨诸塞州当地的纺织厂和钟表厂去招人。
招来的几乎全是有丰富织布和刺绣经验的女工。
车间里,女工们两人一组,隔着金属支架面对面坐着。
一个人用空心长针把铜线推进孔里,对面的搭档用镊子接过来,拉直,固定。
旁边有一台打孔纸带机辅助定位。
纸带走一格,机械定位头就移动到指定的磁芯位置,提示女工这一针是穿孔还是绕行。
一根线穿错,整块内存就可能报废。
一组女工每天要穿上千针。
编完一台计算机需要的内存,要整整花上六到八个星期,在当年要烧掉上万美元。编好之后,工程师要用 X 光机全盘透视,确认每一根铜线的走向都没有搭错。
检查完全合格,再把整块内存板浸入环氧树脂里。
直接灌胶封死。
等胶水凝固,代码就物理定型了。
它彻底变成了一块坚固的塑料砖。当时负责阿波罗飞船软件编写的负责人叫玛格丽特·汉密尔顿。
正是这种极端的物理硬约束,逼着她的团队建立了人类历史上第一套极其严格的代码审查、模拟仿真和异步任务调度体系。
软件工程这个词,最初就是她在阿波罗项目里正式叫响的。这种几乎是手工编织出来的物理代码,换来了什么?
换来了在太空里坚不可摧的稳定性。
飞船进入深空之后,会面临强烈的宇宙射线和高能粒子轰击。
现代半导体芯片最怕这个,一个带电粒子打在晶体管上,电荷一变,比特就翻转了。
可在阿波罗的磁芯绳内存里,代码就是一根根实实在在穿在磁环里的铜线。
宇宙射线再强,还能把一根铜线从圆孔里拔出来不成?
土星五号发射时产生超过 160 分贝的剧烈振动,整块内存被环氧树脂包裹得密不透风,毫无松动。
哪怕整艘飞船在太空中经历剧烈的电压波动甚至断电,通上电之后,程序立刻原封不动地醒过来。1969 年 7 月 20 日,阿波罗 11 号登月舱降落月球表面的最后三分钟。
飞船上的交会对接雷达被错误开启,瞬间向计算机发送了大量无用数据。
中央处理器不堪重负,舱内警报声大作,打出了著名的 1202 和 1201 警报。
处理器的计算周期被完全占满,不得不疯狂放弃低优先级的次要任务。
但无论算力怎么紧张、任务怎么重启,写在铜线里的核心导航程序稳如泰山,没有丢失任何一条指令。
计算机会优先保障关键的姿态控制,发动机持续稳定喷火。
阿波罗 11 号最终安全降落在月球的静海基地。
人类第一次踏上另一个天体,飞船里最核心的导航系统,就是这帮女工一针一针缝出来的。
字面意义上的针线。
没有半导体存储芯片,没有软盘,也没有固态硬盘。
麻省理工学院把写好的代码打在打孔纸带上,送到波士顿郊区的一家军工厂。
工人们坐在放大镜前,拿着穿了细铜线的空心钢针,把代码一针一针缝进微小的金属环里。
编完一块内存要两个月。
搞软件的工程师给这种存储器起了一个外号,叫 LOL 内存,也就是老太太(Little Old Lady)内存。
为什么人类去月球的飞船,要用针线来缝代码?当时的阿波罗导航计算机,重量被死死卡在 30 公斤左右,功耗不能超过 70 瓦。
现在随便一块廉价智能手表的算力,都能把当年的阿波罗甩开几万倍。
可在 1960 年代,微处理器根本还没发明出来。
当时普通的电脑内存叫磁芯内存。
一个绿豆大的环形磁芯,只能存 1 个比特。
如果要存下整套 72KB 的登月导航程序,计算机里得密密麻麻焊上近 60 万个磁环。
整台电脑会重得像个大铁柜,火箭根本带不动。
而且普通的磁芯内存在供电抖动或者断电时,数据随时可能丢失。
去月球的路上,要是飞船断电导致导航程序清空,宇航员就再也回不来了。
麻省理工学院的工程师想了一个办法。
既然飞船的导航程序在起飞后不需要修改,为什么不把它做成纯粹的物理只读结构?
这就是磁芯绳内存。一根细铜线穿过金属环,怎么就能变成计算机认识的 0 和 1?
这里用的是初中物理里的变压器感应原理。
工程师把几百个微小的环形磁芯排成整齐的阵列。
每个磁芯就像一个小小的甜甜圈。
工人们穿进穿出的细铜线,叫做感应线。
如果这根铜线穿过了磁芯正中间的圆孔,它就代表二进制的 1。
如果这根铜线绕开了圆孔,从磁芯的外侧走过去,它就代表二进制的 0。读取的时候非常巧妙。
计算机给其中一个磁芯通电,磁芯内部的磁场瞬间翻转。
只要有铜线从这个圆孔里穿过去,翻转的磁场就会在铜线里感应出一个微弱的电压脉冲。
传感器检测到了电压脉冲,读出来的就是 1。
要是铜线在磁芯外面,磁场根本耦合格不进去,铜线里没有感应电流,读出来的就是 0。
既然只是用来感应脉冲,一个磁芯的孔里为什么只穿一根线?
工程师算了一下,发现磁芯中间的圆孔空间还挺宽裕。
于是他们往同一个磁芯的孔里,硬生生穿过了 192 根细铜线。
一个磁芯,直接存下了 192 个比特。
原本需要近 60 万个磁环的程序,现在只用了 3072 个磁芯。
整整六个模块,严丝合缝地塞进密封机箱里,把 72KB 的登月代码全装下了。原理讲得通,做起来全靠人手。
承担制造的雷神公司,特意跑到马萨诸塞州当地的纺织厂和钟表厂去招人。
招来的几乎全是有丰富织布和刺绣经验的女工。
车间里,女工们两人一组,隔着金属支架面对面坐着。
一个人用空心长针把铜线推进孔里,对面的搭档用镊子接过来,拉直,固定。
旁边有一台打孔纸带机辅助定位。
纸带走一格,机械定位头就移动到指定的磁芯位置,提示女工这一针是穿孔还是绕行。
一根线穿错,整块内存就可能报废。
一组女工每天要穿上千针。
编完一台计算机需要的内存,要整整花上六到八个星期,在当年要烧掉上万美元。编好之后,工程师要用 X 光机全盘透视,确认每一根铜线的走向都没有搭错。
检查完全合格,再把整块内存板浸入环氧树脂里。
直接灌胶封死。
等胶水凝固,代码就物理定型了。
它彻底变成了一块坚固的塑料砖。当时负责阿波罗飞船软件编写的负责人叫玛格丽特·汉密尔顿。
正是这种极端的物理硬约束,逼着她的团队建立了人类历史上第一套极其严格的代码审查、模拟仿真和异步任务调度体系。
软件工程这个词,最初就是她在阿波罗项目里正式叫响的。这种几乎是手工编织出来的物理代码,换来了什么?
换来了在太空里坚不可摧的稳定性。
飞船进入深空之后,会面临强烈的宇宙射线和高能粒子轰击。
现代半导体芯片最怕这个,一个带电粒子打在晶体管上,电荷一变,比特就翻转了。
可在阿波罗的磁芯绳内存里,代码就是一根根实实在在穿在磁环里的铜线。
宇宙射线再强,还能把一根铜线从圆孔里拔出来不成?
土星五号发射时产生超过 160 分贝的剧烈振动,整块内存被环氧树脂包裹得密不透风,毫无松动。
哪怕整艘飞船在太空中经历剧烈的电压波动甚至断电,通上电之后,程序立刻原封不动地醒过来。1969 年 7 月 20 日,阿波罗 11 号登月舱降落月球表面的最后三分钟。
飞船上的交会对接雷达被错误开启,瞬间向计算机发送了大量无用数据。
中央处理器不堪重负,舱内警报声大作,打出了著名的 1202 和 1201 警报。
处理器的计算周期被完全占满,不得不疯狂放弃低优先级的次要任务。
但无论算力怎么紧张、任务怎么重启,写在铜线里的核心导航程序稳如泰山,没有丢失任何一条指令。
计算机会优先保障关键的姿态控制,发动机持续稳定喷火。
阿波罗 11 号最终安全降落在月球的静海基地。
人类第一次踏上另一个天体,飞船里最核心的导航系统,就是这帮女工一针一针缝出来的。
引用自 X
原帖地址:https://x.com/i/status/2116568831917212080
原帖:
本站媒体副本
0 条评论
登录后可以参与讨论。
成员登录还没有评论。第一条认真回应会很重要。