来源 | 程序员的那些事(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问题,最容易掉坑里!
☞好扑科技结合区块链行业发展趋势,重磅推出“好扑区块链合伙人”计划
点击阅读原文,精彩继续。
你点的每个“在看”,我都认真当成了喜欢

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

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

    原创:程序员的那些事(id:iProgrammer) 有今天凌晨在看直播的童鞋么? 北京时间5月31日凌晨3点22分,NASA 与 SpaceX 合作,猎鹰9号火箭顺利升空.这是 SpaceX 公司首 ...

  2. 猎鹰重型火箭发射成功,背后夹杂着马斯克对AI毁灭人类的忧虑?

    ▼ 点击上方蓝字 关注网易智能 聚焦AI,读懂下一个大时代! [网易科技讯 2月7日消息]据国外媒体报道,美国太平洋东部时间周二下午,太空探索公司旗下的猎鹰重型火箭在位于佛罗里达州的美国宇航局肯尼迪航 ...

  3. WEY的广告上天了!CZ-11 WEY号火箭发射成功

    6月5日,12时6分,我国在黄海海域用长征十一号海射运载火箭CZ-11 WEY号,将技术试验卫星捕风一号A.B星及五颗商业卫星顺利送入预定轨道,试验取得成功. 这是中国航天首次与企业品牌联合命名的运载 ...

  4. 00后南航大二学生自制火箭,成功发射后回收

    ‍ ‍还记得去年8月火了的自制火箭的00后南航大学生吗?他近日做出来自制火箭第二代了! B站up主@Lshang001 在10月9日发布了最新的视频,标题为<[硬核]小型反推垂直回收火箭研发制造 ...

  5. 填补首飞遗憾!SpaceX 重型猎鹰火箭首次商业发射成功...

    北京时间2019年4月12日6点35分,美国民营航天公司SpaceX的猎鹰重型火箭(Falcon Heavy)时隔一年再次从肯尼迪航天中心 LC-39A 发射台发射. 据雷锋网了解,本次发射是这款目前 ...

  6. 填补首飞遗憾!SpaceX 重型猎鹰火箭首次商业发射成功

    北京时间2019年4月12日6点35分,美国民营航天公司SpaceX的猎鹰重型火箭(Falcon Heavy)时隔一年再次从肯尼迪航天中心 LC-39A 发射台发射. 据雷锋网了解,本次发射是这款目前 ...

  7. SpaceX 猎鹰重载成功发射,预先留下人类文明可能是这次火箭最大的功劳

    带那么多东西进太空,马斯克不仅发射火箭,他还想了很多其他的东西. 在美股暴跌给美国民众带去"灾难之时,美国上空却划过了一条代表胜利的"彩道". 美国东岸时间2018年2月 ...

  8. 里程碑!SpaceX 载人首飞发射成功,马斯克填补美国载人飞行近十年空白

    来源:雷锋网 作者 | 付静 1 代表着首次,标志着政府与企业持续合作前往国际空间站的开始. 终于,美国太空探索技术公司(SpaceX)的首次正式载人飞行任务拉开大幕! 美东时间 2020 年 11 ...

  9. Hey! 首先祝贺 SpaceX 发射成功,其次我黑了 NASA 某IT 承包商网络哟~

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 勒索软件 DopplePaymer 的操纵者首先祝贺 SpaceX 和 NASA 载人龙飞船发射成功,转而宣布感染了NASA 其中一个 ...

最新文章

  1. 一些技术图书编写、推荐、出版人员需要自重
  2. 复杂场景下的复杂缺陷检测方法--深度学习算法综述
  3. WCF如何通过契约加编码方式调用
  4. 着手一个手游项目的思考
  5. 不管马斯克怎么说,中国智能汽车激光雷达军备竞赛已经开始
  6. Android 系统搜索框(有浏览记录)
  7. 在Eclipse中编译maven项目出的问题
  8. 博客No.1活动暂停公告
  9. android onclick方法吗,Android中button的onClick事件几种方法
  10. 1472: C语言实验题――逆置正整数
  11. Padrino 生成器指南
  12. android仿空间photoview,PickPhotoView:一个Android照片选择器
  13. 初识Quartz (一)
  14. mysql截取小数点后4位_MySQL 截取小数位数
  15. 正则表达式同时匹配中英文及常用正则表达式
  16. 聚集索引,非聚集索引,覆盖索引 原理
  17. 粉象生活日记1:系统化打磨
  18. linux 域名劫持,域名被劫持处理方案
  19. python 执行linux rm命令_Linux rm命令:删除文件
  20. 项目xx方案文档格式规范模板

热门文章

  1. 线程池原理及python实现
  2. Storm sql 简单测试
  3. 用getchar和%C输入字符型数据
  4. Javascript 随机验证码
  5. Gym - 101142F Folding(折半)
  6. Linxu入门(一)
  7. c#划分目录和文件(小白的一点经验)
  8. jQuery 学习笔记 事件委派
  9. 矩池云上CUDA、nvcc、cuDNN相关操作汇总
  10. 【图像处理】MATLAB:形态学