5月30日,SpaceX公司的 "龙 "号飞船(Crew Dragon),有史以来第一艘私人载人航天器,也是9年来美国首次载人航天飞行,成功地将美国宇航局的宇航员鲍勃-贝恩肯和道格-赫尔利送入轨道。搭载他们的是SpaceX公司的可重复使用的 "猎鹰9号 "飞船,由火箭燃料和Linux驱动。
根据ZDNET网站报道,与超级计算机、物联网(IoT)设备和许多任务关键设备一样,猎鹰9号也是用Linux飞行。SpaceX的软件工程师解释了猎鹰9号的编程工作原理。
"飞行软件团队大约有35人。我们为猎鹰9号、蚱蜢[猎鹰9号试验火箭]和龙号应用编写所有的代码;做核心平台的工作,也是使用这些软件;我们还编写仿真软件;测试飞行代码;编写通信和分析软件,部署在我们的地面站。。"
猎鹰9号的机载操作系统是在3个普通的双核x86处理器上运行精简的Linux。飞行软件本身在每个处理器上单独运行,用C/C++编写。
航天器的CPU远不是最新最先进的。它们为航天器开发的,从草案到发射需要几年甚至几十年的时间。例如,国际空间站(ISS)运行的是古老的1988年20兆赫的英特尔80386SX处理器。不过还不知道猎鹰9号使用的是什么芯片。但有可能,他们的设计至少比现在网购的芯片老了十年。
当然,虽然这些古老的芯片可以用于空间站的指挥和控制多路复用器解复用器(C&C MDM),但它们对其他应用可能没有什么用处。普通的日复一日的工作,宇航员们使用的是运行Debian Linux、Scientific Linux和Windows 10的惠普ZBook 15s。Linux系统充当C&C MDM的远程终端,Windows系统则用于电子邮件、上网和娱乐。
不过通常情况下,进入太空的芯片并不是普通的芯片。留在太空中的CPU必须经过辐射硬化处理。否则,它们往往会因为电离辐射和宇宙射线的影响而失效。这些定制化的处理器要经过多年的设计工作,然后再经过更多年的测试,才能通过太空飞行认证。例如,NASA预计其下一代通用处理器,是与树莓派3同款的ARM A53处理器的变体,将于2021年准备好运行。因为 "猎鹰9号 "的第一级自行着陆,它的芯片不需要经过防辐射处理。
为什么要用三颗处理器?StackExchange Space Exploration给出的解释是,SpaceX 使用了一个 Actor-Judge 系统,通过冗余提供安全保障。在这个系统中,每当做出一个决定,都会与其他核心的结果进行比较。如果有任何不同意见,就会把决策抛出,然后重新开始处理。当每个处理器都得出相同的答案时,才会向PowerPC微控制器发出指令。
这些控制器,会从每个x86处理器中得到三条命令。如果这三个指令串都相同,那么微控制器才会执行该指令,但如果三个指令中的一个坏了,控制器就会使用之前最后一条正确的指令。如果事情完全出了问题,猎鹰9就会忽略错误的芯片指令。
这三条 "告诉我三次 "的冗余指令的意义在于,无需花钱购买昂贵的空间专用芯片,就能得到它所需要的容错能力。现代的飞机,比如较新的空客飞机,其飞行系统也采用了类似的方法。
在看到飞行之前,SpaceX公司桌面上测试其飞行软件和硬件。在那里,他们可以进行飞行仿真,包括灾难性的故障,避免损失。
龙号飞船运行Linux系统,飞行软件是用C++编写的。飞船的触摸屏界面是用Chromium和JavaScript渲染。如果界面出了问题,宇航员有物理按钮来控制飞船。
所以,Linux这只企鹅似乎也能飞了,背后有足够的火箭动力。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.