SpaceX在其Falcon火箭中使用的软件包,Dragon太空舱和Starlink卫星是您PC或手机上可能安装的程序的近亲。#百度超级好物节#
宇航员鲍勃Behnken设计和Doug赫尔利使用的基础上谷歌的Chrome浏览器。而且,每台SpaceX火箭和卫星都使用Linux操作系统的一种变体,为全球数十亿部Android手机提供动力。
在Hurley和Behnken在太空站的帮助下进行的Reddit AMA中,SpaceX程序员揭示了Elon Musk的公司如何努力使其太空工业的一部分现代化,这个领域仍然依赖可追溯到几十年前的技术。软件不如该公司一些引人入胜的硬件那样可见,例如可以返回地球并自行着陆的助推火箭。但这一点同样重要,因为它控制着太空飞行的各个方面。例如,软件会运行SpaceX紧急中止序列,以在猎鹰火箭爆炸时将Crew Dragon胶囊放高。
SpaceX使用Chromium(谷歌为Chrome Web浏览器提供的开源基础)在Crew Dragon上提供触摸屏用户界面,Sofian Hnaide表示,该公司开发了Demo-2发射中使用的Crew Dragon显示技术,该技术具有两个优点。宇航员到空间站。SpaceX开始努力向NASA展示其设计思想,但SpaceX坚持了下来。
Hnaide在AMA上说:“我们喜欢开箱即用的浏览器所具有的所有现代功能。”他补充说,Chromium使SpaceX可以访问许多已经熟练掌握该技术的程序员。
这意味着用HTML和JavaScript编写的Web应用程序就像数百万个网站一样,向宇航员展示了他们需要看的东西,并解释了他们的水龙头。这与使用较低级语言的传统航空编程方法有所不同。
Dragon软件团队的负责人Wendy Shimata表示,触摸屏是SpaceX现代化计算方法的代表,但是Dragon胶囊还具有更多传统硬件按钮,可用于响应机舱火灾等关键动作。
基于Chromium的界面可连接到以C ++语言编写并在开源Linux操作系统上运行的车辆控制软件。SpaceX的Crew Dragon太空舱软件设计负责人Josh Sulkin表示,SpaceX拥有自己的Linux变体,但它与每部Android手机中运行的版本密切相关。
SpaceX修改了Linux以支持公司自己的硬件。它还启用了实时Linux选项,这有助于确保软件可靠,快速地响应输入。
对于Starlink,SpaceX不断增长的卫星网络可以为地球上的计算机提供Internet访问,“每发射60颗卫星,就会包含4000多台Linux计算机,” Sulkin说。其中大多数控制着称为微控制器的微型计算机,它们承担着狭窄但通常很重要的职责。
他说:“这个星座目前在太空中有30,000多个Linux节点(以及6,000多个微控制器),”他指的是一个计算系统,该系统是并行工作的较大团体的一部分。
SpaceX不仅融合了现代软件,还融合了诸如频繁更新之类的现代软件开发方法。
负责Starlink软件工作并曾在公司的Dragon工作过的Matt Monson说,SpaceX每周都会更新其Starlink软件。他说:“当我们发射一批卫星时,它们通常是在已经比其他星座更早的构造上制造的。” “在这种项目上,创新的步伐就是一切。”
SpaceX还与宇航员Behnken和Hurley举行了为期一周的黑客马拉松,让他们在白天试用该软件,然后每天晚上对其进行重建,以整合他们对第二天测试的反馈。
他说,SpaceX还使用A / B测试,这使公司可以测试部分卫星的变化。这是一种在更常规的编程中广泛使用的方法,例如用于评估网站是否加载速度更快。
更新可能很关键。“在很多情况下,在轨卫星发生了我们从未想过的故障,但能够保持足够长的安全时间,以便我们对其进行调试,找出解决办法或解决方法,然后进行推升软件更新,” Monson说。
这并不是说软件是流动的。该船员龙软件被锁定,发射前几个月。
现代软件意味着现代软件问题,例如安全性。运行SpaceX飞行软件和网络安全程序的杰夫·德克斯特(Jeff Dexter)说,SpaceX使用多种安全方法来确保其航天器,系统和数据的安全。
他说,例如,SpaceX使用端到端加密来保护发送到Starlink卫星和从Starlink卫星发送的数据,防止它们被拦截,并且所有硬件都运行由SpaceX签名的软件,以帮助阻止外部软件。它还运行自动测试以寻找软件中的问题。
德克斯特说: “我们有一个专门的团队来确定如何对我们的车辆和卫星进行黑客攻击,以便我们在制造车辆时可以消除或禁止这类威胁。”
甚至SpaceX程序员为娱乐所做的事情也听起来很严肃。一位Redditor询问他们是否玩Kerbal Space Program,这是一款对喜欢轨道力学的人有用的太空飞行模拟器游戏。
“ 我们当然打KSP,”海内德说。