150亿英里外的旅行者号软件升级

admin 2023年12月16日20:02:43评论25 views字数 2054阅读6分50秒阅读模式


“如何给150亿英里外的软件进行升级?”

NASA的招聘启事

150亿英里外的旅行者号软件升级
    2015 年,NASA 发布了招聘启事,寻找具有特定技能的软件工程师。这个人必须是 FORTRAN 和汇编的专家,这两种 40 年代和 50 年代的编程语言大多数年轻毕业生都不知道。这项工作是加入一个致力于旅行者号Voyager太空探测器的小团队。

旅行者号的计算机已经运行了50年

150亿英里外的旅行者号软件升级
    令人难以置信的是,两台旅行者号仍然运行在他们原来的50年前的计算机上,这些计算机的内存只有 70KB。这听起来可能不多,但足以让两个太空探测器穿过我们的太阳系,并一路上做出令人难以置信的发现。不出所料,Voyager 的计算机确实出现了问题。

太空方向数据开始出现乱码

150亿英里外的旅行者号软件升级
    就在去年,旅行者一号开始发回有关其太空方向遥测数据的乱码。

推进器管道堵塞累积

150亿英里外的旅行者号软件升级
    最重要的是,负责保持旅行者号指向正确方向的推进器开始显示出疲劳的迹象。每次使用推进器时,微小的联氨燃料碎片都会卡在管道中。随着时间的推移,这种情况逐渐累积,导致系统堵塞。

旅行者号已经没有多余推进器

150亿英里外的旅行者号软件升级
    旅行者号已经启用其备用推进器,因此如果这些推进器失败,旅行者号将结束。在150亿英里的距离上,没有办法清理管道,但为了减缓累积速度并解决遥测问题,负责Voyager的小团队开始编写一个软件更新,该更新将发送到我们的宇宙中以修复它。

旅行者号有三台计算机

150亿英里外的旅行者号软件升级
    Voyager上有三台主要计算机。主计算机控制所有主要仪器,维持其健康和温度,并控制其他两台计算机。第二台计算机负责 Voyager 的方向,因此它会寻找预定的参考点,并启动推进器以保持Voyager 的天线指向地球。第三台计算机负责存储和处理仪器拍摄的所有科学数据和图像。Voyager 没有操作系统,任何一种编程语言都会占用太多空间。

有部分代码,专为拍摄海王星而服务

150亿英里外的旅行者号软件升级
    海王星的光线比地球暗900倍,因此为了拍照,工程师必须重新编程以拍摄更长的曝光时间。一旦它离开海王星,NASA就会开始关闭相机和各种科学仪器等设备以节省电力,但由于计算机上只有70 KB内存,为失效仪器保留几行代码只是浪费空间。因此,工程师完全重写了Voyager的代码,并进行了软件更新,以确保它在可预见的未来继续运行。

旅行者号计算机的内存

150亿英里外的旅行者号软件升级
    为了对Voyager进行软件更新,NASA需要将新代码安装到其计算机中。
    也许Voyager计算机最酷的地方就是内存。每台计算机都有自己的镀线存储器,以最基本的形式1和0存储Voyager的代码。该存储器由物理网格线和薄金属板组成。每个交点都可以被视为内存的单个位,它可以存储1或0。   
    通过使电流通过其中一个板和特定的电线,就会产生磁场。如果磁场沿这个方向,则被视为0。如果方向相反,则为1。通过沿相反方向传递电流,它会改变磁场方向并将该位翻转为零。通过对每个点执行此操作,您可以将这些1和0保存到内存中。
    这种设计在当时是一个很好的选择,因为它意味着即使停电,这些 1 和 0 仍然会保存到内存中。这也意味着每一位都可以更新

旅行者号上的代码

150亿英里外的旅行者号软件升级
    Voyager上的总内存只有70KB,工程师必须极其高效地编写代码。除了基本机器代码之外,Voyager 还有自己的伪代码。基本上是一系列快捷命令,可以触发这些命令来执行重复性任务,而不会占用太多内存。主计算机上的解释器读取这些1和0。一旦遇到预定的代码,它就会启动伪代码来执行命令。这可以节省大量内存,并允许许多任务自动化,而无需编写长行代码。

旅行者号接收软件需要一天

150亿英里外的旅行者号软件升级
    数据以每秒16位的速率发送到 Voyager,几乎需要一整天才能真正到达Voyager。Voyager上的计算机是中断驱动的。这意味着软件会遍历其通常的指令列表,直到被中断。当更新发送到 Voyager 时,它会携带一个中断信号。

旅行者号的软件更新

150亿英里外的旅行者号软件升级
    当 Voyager 收到此消息时,它会告诉主计算机停止正在执行的操作,转而执行更新指令。然后,它将新代码卸载到内存中,将所有位翻转到新位置。然后读取代码以检查一切是否正确,然后主计算机启动并返回正常操作。

1995年的软件更新,在20年后拯救了旅行者1号

150亿英里外的旅行者号软件升级
    多年来,Voyager收到了一长串更新和补丁,以修复和改进其操作方式。1995年编写了一个更新,如果某些组件出现故障,基本上会重新启动某些组件。2014 年,即代码编写大约20年后,当某个硬件发生故障时,该代码拯救了 Voyager 1。

2010年,修复旅行者号内存的错误翻转

150亿英里外的旅行者号软件升级
    2010年,旅行者号的内存中的一个位被翻转,从 0 变成了 1。这导致计算机彼此失去同步,命令开始发生的时间比预期晚了两个半小时。团队已经发送软件更新以将故障位翻转回其校正位置。

旅行者号的传奇故事仍将继续

150亿英里外的旅行者号软件升级
    正是这些令人惊叹的故事让这些标志性的太空探测器在太空中存活了近50年。令人难以置信的是,Voyager计算机上的物理线路、晶体管和硬件在这么长时间之后仍然按预期运行。

原文始发于微信公众号(黑客与极客):150亿英里外的旅行者号软件升级

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月16日20:02:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   150亿英里外的旅行者号软件升级https://cn-sec.com/archives/2306664.html

发表评论

匿名网友 填写信息