SpaceX 火箭发射成功,一文了解所用的软件技术栈!

2020 年 6 月 1 日 CSDN

来源 | 程序员的那些事(ID:iProgrammer)

有凌晨追看SpaceX 火箭发射直播的童鞋么?


北京时间5月31日凌晨3点22分,NASA 与 SpaceX 合作,猎鹰9号火箭顺利升空。这是 SpaceX 公司首次利用载人龙飞船,把两位宇航员送入地球轨道。龙飞船目前正在追逐国际空间站,预计 19 个小时后,尝试与国际空间站对接。


(猎鹰9号火箭升空)


有网友调侃道,「卖电动车的都在发射火箭了」


可能有程序员(包括我自己)对 SpaceX 工程师们用到的技术栈感兴趣了。于是就搜寻相关公开信息。


终于找到 2013 年 SpaceX 的软件工程师在 Reddit 做过一次公开回应,回答网友们的提问。


SpaceX 软件工程师团队在干什么


SpaceX 软件工程师的目标有 2 个:


  • 火箭和航天器上运行的代码;
  • 火箭和航天器的设计和制造过程的代码;

工作内容范围就很大了,从大型 Web 应用到小型嵌入式计算平台都有涉及。


SpaceX 软件工程师的技术栈:


  • C#、MVC4、EF、MSSQL (REST);
  • Javascript、Knockout、Handlebars、LESS;
  • C++、Linux、C、Python、LabVIEW、MATLAB;

看到这,肯定有人冒出疑问了,C# 和 MVC 与火箭发射没有关联吧?

嗯,没关系,它们是用来开发内部信息系统的。

SpaceX 有 4 个独立的软件团队。

1、飞行软件团队


大约有 35 人(这是 2013 年的人数)。猎鹰9号火箭、蚱蜢火箭和龙飞船上所有的代码,都由飞行软件团队包圆了。


此外,他们还得:
  • 编写仿真软件,测试飞行代码;
  • 编写部署在地面站的通信和分析软件;
  • 在飞行任务控制部门工作,为现役任务提供支持。

2、企业信息系统团队


建立内部软件系统,让 Spacex 得以运转。


这个团队中的成员身兼多职,但他们开发和发布的旗舰产品,几乎所有 SpaceX 员工都在使用的内部 Web 应用程序。


包括:
  • 创建采购订单和填写零件库存的人员,
  • 工程师创建设计和工作订单,
  • 技术人员在现场打卡并根据这些设计查看当天的工作内容。
  • (基本涉及到方方面面了。市面上有一些商业化产品可以满足他们的需求,但 SpaceX 是自己开发了)


SpaceX 正在从一个研究和工程公司转型为一个制造公司,该团队功不可没。他们充分利用了C#/MVC4/EF/SQL、Javascript/Knockout/Handlebars/LESS 和 REST API。

3、地面软件团队


这个团队大约有 9 人。主要在 LabVIEW 中编码,开发用于任务和发射控制的 GUI,供工程师和操作人员监控飞行器遥测和指挥火箭、航天器和平台支持设备。


他们在高度分布式系统中推送高带宽的数据,并实现由严格要求的复杂用户界面,以确保操作人员能够及时控制和评估航天器。


LabVIEW 是什么?
LabVIEW(英语:Laboratory Virtual Instrumentation Engineering Workbench)是由美国国家仪器公司所开发的图形化程序编译平台,由杰夫·考度斯基(Jeff Kodosky)发明,程序最初于 1986 年在苹果电脑上发表。

LabVIEW 早期是为了仪器自动控制所设计,至今转变成为一种逐渐成熟的高级编程语言,目前广泛的被应用于工业自动化之领域上。

图形化程序与传统编程语言之不同点在于程序流程采用"数据流"之概念打破传统之思维模式,使得程序设计者在流程图构思完毕的同时也完成了程序的编写。—— 维基百科

4、航电测试团队


他们与航电硬件设计工程师一起合作,编写测试软件,尽早发现硬件问题。


该团队的主要任务:写出非常全面和强大的软件,以便能够在大批量的情况下自动发现硬件的问题。


测试软件通常是在机械环境测试的时候运行。



SpaceX 工程师答网友问

问:导航/推进控制系统用了哪种操作系统?
答:龙飞船和猎鹰9号用的是 Linux。



问:主力编程语言是哪个?
答:火箭和飞船都是 C++。


【说明】:可能有童鞋要问,前文技术栈栈提到了 Python,怎么没有说用在哪方面。测试团队做自动化测试时,肯定用了 Python 脚本了。

问:你们当前最大的项目代码量是多少?
答:运载工具代码约为几十万行。

问:维护麻烦吗?
答:不麻烦,这就是我们的工作!实际上,我们对代码库非常满意。

问:你们最具挑战性的项目是什么?为什么?
答:龙飞船对接国际空间站是一个重大挑战。因为必须要开发许多新代码。

(程序员的那些事 补充:今天成功发射的龙飞船,可以自动与空间站完成对接。第一代龙飞船需要借助空间站上的机械臂。当然,载人龙飞船也保留了人工对接的选项。SpaceX 在 2013 年的龙飞船是第几代,我没查。

问:你们觉得最有成就的是什么?
答:龙飞船对接国际空间站。



问:你们怎么平衡工作/生活?我听说在 SpaceX 很容易职业倦怠。你们都在煎熬吗?

答:SpaceX 体现了小型企业的心态。我们全都投资于 SpaceX 及其成功。话虽如此,我们的工作时间却更长。归根结底,还是要看你生活中最重要的是什么。我们当然要应对职业倦怠,那就是休假 :-)。

就我个人来说,大多数时候我甚至没有注意到我已经工作了12~14个小时。我看着时钟,想着“时间真快在哪里?”。我认为这证明了我们对项目感到兴奋的程度。当你真正享受自己的工作时,并不会感觉像是在工作。话虽如此,我仍然会时不时地休假,借以保持理智。



(程序员的那些事 补充:我查看了 SpaceX 的招聘信息,很多技术岗位,基本都有一个额外要求:必要的时候,能加班。 )

还有个当年正在攻读天体物理学的学位的童鞋问:

对于航天行业,你们觉得最常用/最有用的编程语言是什么? 我的编程经验非常少,而且很想开始学习,因为这个行业的每一个方面/研究似乎都需要对编程有一定的了解。

SpaceX 工程师的回复:


对于所有软件工程师来说,C 语言是一门很好的入门语言。它迫使你学习 CPU 是如何工作的,内存是如何工作的,等等。一旦你掌握了 C 语言之后,再去看 C++。

我们团队所有人都有不同的背景,没有什么特别的路径,我们都是沿着一条路走到这里的。就我个人而言,我在学校里得到的最好经验就是做了个人编程项目。这年头在网上和应用商店里有很多机会,可以做一个产品,公开自己的作品让他人看到。

【END】

更多精彩推荐

☞开源公司 HashiCorp 国内险遭禁,阿里、华为也要做好 B 计划?

航拍高手、吉他十级,6500+Star 开源项目作者,后浪程序员给力!

面试官:你的 SQL 一般有几个 join?| 原力计划

基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了

面试中遇到这 3 个SQL问题,最容易掉坑里!

好扑科技结合区块链行业发展趋势,重磅推出“好扑区块链合伙人”计划

点击阅读原文,精彩继续。

你点的每个“在看”,我都认真当成了喜欢
登录查看更多
0

相关内容

程序员(俗称“码农”)有专业和业余之分,而软件工程师(Software Engineer)是一种比较正式的称谓,也是专业(职业)程序员的别称。软件工程师有时也被称作软件设计师。
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
一箭60星,特朗普宣称的6G或已开始启动
全球人工智能
11+阅读 · 2019年5月27日
美陆军计划部署四大新型地面无人系统
无人机
23+阅读 · 2019年4月30日
消失的千人计划
新智元
24+阅读 · 2019年4月27日
【数字孪生】数字孪生的前世今生及未来之路
产业智能官
29+阅读 · 2019年1月22日
历经一个炒作周期,聊天机器人为什么还没成功?
网易智能菌
5+阅读 · 2018年6月13日
数据工程师的没落
大数据文摘
4+阅读 · 2017年9月20日
Arxiv
26+阅读 · 2019年3月5日
dynnode2vec: Scalable Dynamic Network Embedding
Arxiv
14+阅读 · 2018年12月6日
q-Space Novelty Detection with Variational Autoencoders
Arxiv
24+阅读 · 2018年10月24日
Arxiv
5+阅读 · 2018年5月16日
VIP会员
相关VIP内容
相关资讯
一箭60星,特朗普宣称的6G或已开始启动
全球人工智能
11+阅读 · 2019年5月27日
美陆军计划部署四大新型地面无人系统
无人机
23+阅读 · 2019年4月30日
消失的千人计划
新智元
24+阅读 · 2019年4月27日
【数字孪生】数字孪生的前世今生及未来之路
产业智能官
29+阅读 · 2019年1月22日
历经一个炒作周期,聊天机器人为什么还没成功?
网易智能菌
5+阅读 · 2018年6月13日
数据工程师的没落
大数据文摘
4+阅读 · 2017年9月20日
相关论文
Arxiv
26+阅读 · 2019年3月5日
dynnode2vec: Scalable Dynamic Network Embedding
Arxiv
14+阅读 · 2018年12月6日
q-Space Novelty Detection with Variational Autoencoders
Arxiv
24+阅读 · 2018年10月24日
Arxiv
5+阅读 · 2018年5月16日
Top
微信扫码咨询专知VIP会员