本文来自微信公众号:InfoQ(ID:infoqchina),作者:Tina,头图来自SpaceX
北京时间 6 月 13 日 17:21,SpaceX 使用猎鹰 9 火箭将 58 颗 Starlink 卫星和 3 枚 SkySats 卫星送入了轨道。
太阳光下的 SpaceX 火箭升空羽流图
北京时间 6 月 4 日上午 9 点 25,Starlink“星链计划”刚完成了第八次卫星发射任务。紧接着,又于 6 月 13 日进行了第九次卫星发射。
这次发射没有按照常规发射 60 颗 Starlink 卫星,而是混装了 3 颗 SkySat 卫星和 58 颗 Starlink 卫星。SpaceX 在升空后约 13 分钟部署了 SkySat 卫星,然后在升空后约 39 分钟部署了 58 颗 Starlink 卫星。随后助推器安全返回到海面回收点。
近地轨道上的 58 颗 Starlink 卫星
原计划每月一次的发射任务,这个月变成了两次。SpaceX 之所以这么着急地发卫星,可能是因为夸下的海口要到期了——今年 4 月马斯克曾在社交媒体称星链版卫星互联网将在 3 个月内进行私人内测,即在今年 7 月开始提供私人 Beta 版服务。
SpaceX 在上周刚刚利用一枚重复使用的猎鹰 9 号火箭向太空中发射了 60 颗星链卫星,加上这周发射的 58 颗,星链计划的总体在轨卫星已经达到 540 颗左右。根据预期,当卫星总量达到 800 颗时,即可在全美实现基本网络覆盖。最终,成千上万的 Starlink 卫星可以为全世界数十亿人提供始终在线的宽带互联网访问。
相当于发射了一个小型数据中心
SpaceX 运行的这些 Starlink 卫星,类似于数据中心里众多的服务器,每发射 60 颗卫星,就包含 4000 多台 Linux 计算机。按照这样的计算方式,当前在轨卫星约 540 颗,SpaceX 总共已经向星链体系发射出 36000 台 Linux 计算机。SpaceX 公司星链软件主管 Matt Monson 表示,这些设备的功能类似于基于 Linux 的服务器,“对于 Starlink,我们需要卫星像数据中心中的服务器,而不是像某种特殊的交通工具。”
SpaceX 计划在北半球夏季结束之前,推出星链网络服务的公测版本,美国政府也批准其在美国本土部署 100 万个最终用户终端。
现在,马斯克的 1.2 万颗星链卫星计划已经发射到第九批,另外 3 万颗,还在向美国通信委员会 FCC 申请中。假定第二代卫星搭载同等数量的 Linux 计算机,SpaceX 相当于在未来几年会将至少 200 万台 Linux 计算机送入太空。
目前 Starlink 每天产生的数据已经超过 5TB。为了减少向地面传输和存储数据的压力,解决思路就是尽可能让卫星在轨道上完成问题的检测。
整个 Starlink 宽带卫星网络的运营也类似于维护数据中心里的服务器集群,该集群也会频繁更新软件,以解决诸如性能和安全性等问题。Matt Monson 在 Reddit 论坛的答疑(AMA)里说,“卫星网络需要大量软件才能使其正常工作”。
Starlink 团队表示这些在轨卫星曾不止一次地出现从未有过的故障,好在卫星本身能够保证自己的安全飞行,使团队有足够的时间对在轨卫星进行调试,找到修复方法,同时在软件更新当中不断修复问题。通常情况下,在轨卫星的软件大约每周更新一次,而地面系统则每周更新两次或更多次。他说:“软件上的小改进会对我们提供的服务质量和服务人数产生巨大影响。”
共享的基础架构
载人龙飞船软件设计负责人 Sulkin 透露称,这些 Linux 计算机上运行有 PREEMPT_RT 补丁程序。这款补丁由红帽工程师研发而成,旨在将 Linux 转化为实时操作系统。
Sulkin 还指出,SpaceX 方面并未使用第三方 Linux 发行版,而且他们使用的版本中包含多款定制化驱动程序,用于实现硬件交互并构建起分布式计算机系统。
顺带一提,SpaceX 公司的龙飞船同样运行 Linux 系统并使用由 C++ 编写的飞行软件,飞船的触摸屏界面则使用 Chromium 与 JavaScript 渲染而成。Hnaide 指出,该团队还为 Chromium 界面设计了一套内部反应库。此外,NASA 宇航员 Behnken 与 Hurley 所使用的这套界面,也与星链卫星项目进行了部分交叉开发。
Starlink 软件主管 Monson 表示,“机组人员使用的显示技术(尤其是地图与警报机制),正是我们首批星链卫星(Tintin)上用户界面的设计基础。”
Tintin A 与 B 是 SpaceX 公司于 2018 年 2 月利用猎鹰 9 号火箭送入地球轨道的两颗测试性星链卫星。“在此之后,发射的体量开始快速增加。特别是看到 Bob 和 Doug 能用上我们所熟悉的开发成果,这种感觉太棒了。”
SpaceX 公司表示,如果各位在校学生打算未来加入他们,首先需要高度重视对 Linux 专业知识的学习。
“要加入 SpaceX,首先得拿到计算机科学或者相关专业的学位。大家应该多花时间保证自己确切理解事物的工作原理——在 SpaceX,最出色的工程师一定要对代码的工作方式、网络的工作方式、Linux 的工作方式以及硬件的工作方式拥有一丝不苟的严谨态度。另外,大家也可以通过业余项目或者 SpaceX 实习职位来体验如何构建事物、解决难题。”
安全性是难题
随着星链卫星宽带服务在未来几个月逐步由测试阶段过渡至运营阶段,安全性将成为 SpaceX 面临的一大关键难题。
Moran 分享了工程师们目前正在着手解决的具体问题,包括卫星、网关、本地“UFO-on-a-stick”终端等等。Moran 在答疑里写道,“我们设计的系统会对用户数据进行端到端加密,因此即使成功入侵卫星或网关,攻击者也无法拦截到其中的通信内容。我们系统中的所有硬件,包括卫星、网关、用户终端等,都只允许运行经过我们签名的软件,因此即使攻击者强行闯入,也无法获得持久的驻留点。”
如果卫星与地面失去联系,则将其编程为进入高阻力状态,从而坠入大气层销毁。为了确保此类问题不会影响最终用户,该网络被设计为多个卫星为单个用户提供服务的形式,以提供更多的容错能力。
“此外,我们还强化了系统内部,包括地面数据中心服务,使攻击者难以利用某一区域内的漏洞入侵其他区域。我们将继续努力,保证整体系统得到严密加固。虽然目前我们还有很多其他工作要处理(包括招聘新员工),但安全一直是我们非常重视的核心方向。”
未能使用机器学习
虽然科技行业正在利用机器学习技术全面推进自动化,但 SpaceX 的龙飞船与猎鹰火箭还没有用到这一强力武器。Starlink 团队表示,“龙飞船与猎鹰火箭并没有用到机器学习技术,但未来 SpaceX 也许会逐步引入这方面技术。”
SpaceX 的工程师们并没有透露他们在航天器上具体使用哪种计算硬件(包括 CPU 与 GPU 型号),但据猜测,这些计算机的性能恐怕不足以支持机器学习类应用。
这就不得不提到航天器的计算硬件问题。事实上,包括火箭、飞船等在内的航天器配备的 CPU 和市面上最新的 CPU 产品通常相去甚远。因为在太空环境下工作的 CPU 必须经过抗辐射处理,否则太空中的电离辐射和宇宙射线会让 CPU 工作异常。而为太空飞行定制的处理器除了需要经过特别的设计,还需要经过更多年的测试才能最终获得太空飞行的认证。
这些为上天定制的 CPU 从试验到最终的发射可能需要经过十年以上的时间,导致最终搭载的 CPU 可能是十年前的产品。国际空间站目前仍使用着 1988 年出品的老式 20 MHz 英特尔 80386SX CPU,这种芯片进行了专门的强化以抵御太空中宇宙射线的轰击。
本文来自微信公众号:InfoQ(ID:infoqchina),作者:Tina