最近两天科技界最重大的事件莫过于马斯克的 SpaceX 成功实现了猎鹰 9 号(Falcon 9)带着龙飞船(Crew Dragon)成功发射,并使飞船与国际空间站对接,将 NASA 两名宇航员送上了轨道前哨。
背后关于 Falcon 9 与 Crew Dragon 使用的计算机和软件等信息也引起了开发者的关注。多年前就存在的相关论坛提问帖也被翻了出来。
自称为 SpaceX 公司软件开发团队的网友表示 Falcon 9 火箭与 C#、MVC 都没有关系。Falcon、Dragon(此次载人的 Crew Dragon 前一代飞船)的应用主要使用 LabVIEW 进行编码,用于开发任务和发射控制的 GUI,供工程师和操作员监控车辆遥测并指挥火箭、航天器和护垫支持设备。
LabVIEW(Laboratory Virtual Instrumentation Engineering Workbench,实验室虚拟仪器工程平台)是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于 C 和 BASIC 开发环境。LabVIEW 采用图形化编辑语言 G 编写程序,产生的程序是框图的形式。
该网友还表示 Dragon 和 Falcon 9 使用 Linux 操作系统,其他网友补充,在 GDC 2016 与 Dragon 团队交流后了解到,Falcon 采用“三重冗余”系统,简单来讲,Falcon 9 具有 3 个双核 x86 处理器,每个核上都运行 Linux 实例。飞行软件采用 C/C++ 编写。对于每个计算/决定,“飞行字符串”都会比较两个核的结果,如果存在不一致,则字符串是错误的,不发送任何命令。如果两个内核都返回相同的响应,则字符串将命令发送到火箭上的各种微控制器,这些微控制器控制诸如引擎之类的东西。
运行在 PowerPC 处理器上的微控制器从三个飞行字符串接收到三个命令,他们充当法官来选择正确的行动方案。如果所有三个字符串都一致,则微控制器将执行命令。
而 Crew Dragon 飞行界面上使用了 Chromium 与 JavaScript 开发,实际的飞行计算机仍基于 C++ 运行。