2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

SpaceX 软件团队 Reddit 答网友问:应用级程序用 C++ 编写,测试用 Python

  • 2020-06-19
  • 本文字数:2052 字

    阅读完需:约 7 分钟

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python

美国当地时间 5 月 30 日,由埃隆·马斯克创办的航天公司 SpaceX 执行的载人航天发射任务在肯尼迪航天中心圆满完成,猎鹰 9 号火箭成功将载人飞船“Dragon”以及参与两名宇航员送上了太空,至此,马斯克距离他的火星梦又进了一步。


近日,负责开发和部署 Dragon 软件的六名技术人员在 Reddit 举行了一场以“Dragon 有问必答”为主题的线上问答会,Reddit 用户可以就自己感兴趣的任何问题向技术人员提问,他们也会耐心地进行解答。参与问答的团队成员各有分工,有人负责技术管理,有人负责软件开发,有人负责网络安全问题,他们也就网友关心的如何能进入 SpaceX 公司工作给出了一些建议。


这六位技术人员分别是:


  • Jeff Dexter——负责运行飞行软件和网络安全;

  • Josh Sulkin —— Crew Dragon 软件设计负责人

  • Wendy Shimata ——管理 Dragon 软件团队,并负责 Dragon 的容错和安全工作

  • John Dietrick —— 领导了 Demo-2 的软件开发工作

  • Sofian Hnaide——负责 Demo-2 上 Crew Displays 软件工作

  • Matt Monson——曾在 Dragon 上工作现在负责 Starlink 软件

本科学历是最基本条件

在问答中,一位被猜测是高中生的 Reddit 用户问道:“如果我将来想去 SpaceX 从事软件工作,应该具备什么条件?”


SpaceX 负责飞行软件和网络安全的 Jeff Dexter 回答道:“获得计算机科学学位或类似学位”,他表示,对学历有要求是为了“确保你真正了解必备的技术常识”。


他解释说:“在 SpaceX 上表现出色的工程师对他们的代码、网络、Linux 和硬件等如何工作一丝不苟”。另外,SpaceX 许多公开的工程和软件岗位的基本要求都是学士学位及以上。


除了学历很重要以外,团队还提到通过参与一些项目或实习工作获得相应的工作经验也十分重要。Dexter 建议说:“通过在 SpaceX 里接触一些业余项目或实习获得现实世界中的构建事物和解决难题的经验,对以后进入 SpaceX 也很有帮助”。 例如,Demo-2 软件开发工作负责人 John Dietrick 在 Reddit 上说,“视频游戏开发与我们的工作之间有不少交集,这两个领域中,有很多类似的数学难题和以性能为中心的问题。”


学历很重要,但并不是全部。曾在 Dragon 任职,现在负责领导 Starlink 软件的 Matt Monson 表示,“团队中的成员拥有着不同的文化、教育背景,但没有多少人拥有航空背景,不同的观点可以帮助我们从不同的角度看待问题,并且通常可以帮助我们看到我们原本不会看到的解决方案。”


Monson 总结道:“我们欢迎的成员要具备两个基本条件:才能(潜力)和正确的态度(渴望自我完善,为团队服务而不是自私)。

Reddit 上热门评论

在此问答环节中,涉及了很多 SpaceX 的技术栈是什么、应用的编程语言是什么以及在飞行过程中如何执行错误检测和纠正等网友们关注的问题,以下是 Reddit 上热度较高的一些评论及技术团队的回答:



Crew Dragon 软件设计负责人 Josh 回答了网友们关心的开发 F9 和 Dragon 软件最常用的编程语言是什么?是 C 还是 C ++?



Josh 回答称:“所有应用程序级自主软件都是用 C ++编写的。尽管我们希望编程尽可能简单些,但通常,我们在使用面向对象的编程技术时会选择使用 C++。



针对 Dragon 上是否使用了开源库的问题,Josh 回答称:


我们确实使用了开源代码库,主要是标准 C ++库,还有一些其他库。但是,我们仅使用极高质量的开源代码库,并且在解决实际问题时会选择开发自己的库,以便我们可以自己控制代码质量。


网友也对在飞行过程中如何执行错误检测和纠正这一问题比较感兴趣,而 Josh 给出的回答是:


我们在飞船上部署了多台冗余计算机,并对其输出进行投票,这样就可以处理计算机中由辐射引起的错误。通过使用多个不同的传感器来处理传感器中的错误。而数据传输中的错误则通过使用附加到有效负载的错误检测或错误纠正代码来处理。


在机器学习无处不在的当下,SpaceX 是否在其软件中使用了 AI 技术这一话题也成为网友的关注点,就此问题,Dietrick 给出的回答令人有些意想不到,他表示:“Daragon 未使用任何 AI。”不过,Josh 也补充道,Dragon 确实使用了一些计算机视觉来进行导航。



此外,网友也比较关心 SpaceX 的技术栈是什么?它们主要是开源还是内部框架?这一问题 Sofian 给出了回答,他称:“我们使用 C 和 C++来制作飞行软件,HTML、JavaScript 和 CSS 用于显示,python 用于测试。”


在被问到所使用的 Linux 发行版是什么时,Dietrick 表示,“我们不使用任何现成的发行版,我们有自己的发行版。”



在提及如何测试软件时,Dietrick 回答称:“我们会用我们能想到的所有方法进行测试。单元测试、基于容器技术的集成测试(你可以在自己的机器上运行这些测试,并进行完整的物理模拟),以及在真实飞行硬件上进行的完整的“HITL”测试(同样是在完整的模拟下进行)。将飞行软件与模拟器匹配起来是我们最强大的工具,尤其是在真实硬件上运行时。我们可以模拟整个任务,甚至许多详细的故障场景,这些只需把飞行器硬件放在实验室桌子上就能完成。



欲了解更多详细技术信息,请查阅:


https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/


2020-06-19 13:544684

评论

发布
暂无评论
发现更多内容

关于零售业数字化势在必行的一些杰出观点

小刘在学习

新零售

【编程小白福利】办公自动化--从VBA到Python

IT蜗壳-Tango

七日更 28天写作 2月春节不断更 办公自动化 IT蜗壳

一名青少年创客导师

厌倦你

编程

Linux Jenkins 自动打包vue部署到远程window服务器

三爻

Vue jenkins Win

量化炒币机器人软件系统开发|量化炒币机器人app开发

系统开发

Your small business questions, answered

小韩

【转】阿秀:C++经典49问49答

杨明越

「极客时间」课程购买用例

西西里奇

Python编程入门手记

吕湛全

编程常见必备知识

梦醒了

编程 链表 函数

智能云网:从时代所需,到运营商所向

脑极体

Java 训练营第一周习题:02 加载字节码文件

现实中游走

Java

树莓派语音控制的一次小尝试

水战龟

树莓派

产品经理训练营 - 第五次作业

Jophie

产品经理训练营

深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读

DataFunTalk

【计算机内功修炼】九:程序员应如何理解协程

码农的荒岛求生

线程 操作系统 进程 协程

内娱完蛋了?不如让5G“出道”来抢救一下

脑极体

流程图

王一凡

处理 Exception 的几种实践,很优雅,被很多团队采纳!

xcbeyond

Java 异常处理 28天写作

Linux c 开发 - 内存管理器ptmalloc

赖猫

Linux 后台开发 内存管理

c语言函数与指针基础

赫鲁小夫

作业5

赝品

小结Spring中bean的作用域与生命周期

李楠

spring 生命周期 bean 作用域

悟透前端 | javascript数组之includes、reduce

devpoint

ES6 includes reduce

区块链技术带来金融服务的信任变革

CECBC

金融

计算机内部的总线是什么

FishyFine

计算机结构

产品训练营第五周作业

朱航

2021华为软件精英挑战赛正式开启,冠军奖金20万!

2021华为软件精英挑战赛

华为 软件 比赛 软件挑战赛

作业5

瑾瑾呀

gRPC库C++构建及示例

长不胖的Garfield

c++ gRPC

AI数学基础之:奇异值和奇异值分解

程序那些事

人工智能 机器学习 程序那些事 矩阵运算

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python_开源_李冬梅_InfoQ精选文章