SpaceXロケットの発売に成功しました。使用されているソフトウェアテクノロジースタックを理解するための1つの記事です。

(プログラマーについてそれらにスターを付ける)

オリジナル:プログラマーに関するもの(id:iProgrammer)

今朝の生放送を見ていた子供靴はありますか?

5月31日午前3時22分、北京時間、NASAとSpaceXが協力し、Falcon9ロケットがスムーズに離陸しました。SpaceXがクルードラゴン宇宙船を使用して2人の宇宙飛行士を地球軌道に送るのはこれが初めてです。ドラゴン宇宙船は現在国際宇宙ステーションを追いかけており、19時間以内に国際宇宙ステーションとのドッキングを試みる予定です。

(ファルコン9ロケットが持ち上げられた)

一部のネチズンは、「電気自動車を売る人は皆、ロケットを発射している」と冗談を言った。

SpaceXエンジニアが使用するテクノロジースタックに興味を持っているプログラマー(私を含む)がいるかもしれません。そこで、関連する公開情報を検索しました。

最後に、2013年に、SpaceXのソフトウェアエンジニアがRedditで公開応答を行い、ネットユーザーからの質問に答えていることがわかりました。

1.SpaceXソフトウェアエンジニアチームは何をしていますか

SpaceXソフトウェアエンジニアには2つの目標があります。

  • ロケットや宇宙船で実行されるコード。

  • ロケットと宇宙船の設計と製造プロセスのコード。

作業範囲は非常に広く、大規模なWebアプリケーションから小規模な組み込みコンピューティングプラットフォームにまで及びます。

SpaceXソフトウェアエンジニアのテクノロジースタック:

  • C#、MVC4、EF、MSSQL(REST);

  • Javascript、ノックアウト、ハンドルバー、LESS;

  • C ++、Linux、C、Python、LabVIEW、MATLAB;

これを見て、誰かが質問したに違いありません。C#とMVCはロケットの発射とは関係ありませんよね?

まあ、それは問題ではありません、それらは内部情報システムを開発するために使用されます。

SpaceXには4つの独立したソフトウェアチームがあります。

1.フライトソフトウェアチーム

約35人(2013年の人数)です。Falcon 9ロケット、Grasshopperロケット、Dragon宇宙船のすべてのコードは、フライトソフトウェアチームによってパッケージ化されました。

さらに、次のことを行う必要があります。

  • シミュレーションソフトウェアを作成し、フライトコードをテストします。

  • 地上局に配備された通信および分析ソフトウェアをコンパイルします。

  • フライトミッションコントロール部門で働き、アクティブなミッションをサポートします。

2.エンタープライズ情報システムチーム

Spacexが動作できるように内部ソフトウェアシステムを構築します。

このチームのメンバーは複数の役割を担っていますが、彼らが開発およびリリースする主力製品は、ほとんどすべてのSpaceX従業員が使用している内部Webアプリケーションです。

含める:

  • 注文書を作成し、部品在庫を記入する人、

  • エンジニアはデザインと作業指示書を作成し、

  • 技術者はその場でチェックインし、これらの設計に基づいてその日の作業内容を確認します。

  • (基本的にすべての側面が関係しています。市場にはニーズを満たすことができるいくつかの商用製品がありますが、SpaceXはそれを独自に開発しました)

SpaceXは、研究およびエンジニアリング会社から製造会社へと変貌を遂げつつあり、チームは不可欠です。これらは、C#/ MVC4 / EF / SQL、Javascript / Knockout / Handlebars / LESS、およびRESTAPIを最大限に活用します。

3.地上ソフトウェアチーム

チームには約9人がいます。主にLabVIEWでコーディングされ、エンジニアとオペレーターが航空機のテレメトリーを監視し、ロケット、宇宙船、プラットフォームサポート機器をコマンドするためのミッションと打ち上げ制御のGUIを開発します。

高度に分散されたシステムで高帯域幅のデータをプッシュし、オペレーターが時間内に宇宙船を制御および評価できるようにするために厳密に必要な複雑なユーザーインターフェイスを実装します。

LabVIEWとは何ですか?

LabVIEW(英語:Laboratory Virtual Instrumentation Engineering Workbench)は、NationalInstrumentsによって開発されたグラフィカルプログラムコンパイルプラットフォームです。JeffKodoskyによって発明されました。このプログラムは1986年にAppleComputerで最初に公開されました。

LabVIEWは、初期の機器の自動制御用に設計され、成熟した高レベルのプログラミング言語に変換されました。現在、産業用自動化の分野で広く使用されています。

グラフィカルプログラムと従来のプログラミング言語の違いは、プログラムフローが「データフロー」の概念を使用して従来の思考モードを破り、プログラマーがフローチャートを考えながらプログラムを完了することができることです。-ウィキペディア

4.アビオニクステストチーム

彼らはavionicsハードウェア設計エンジニアと協力してテストソフトウェアを作成し、ハードウェアの問題をできるだけ早く見つけます。

チームの主なタスクは、ハードウェアの問題を大量に自動的に検出できる、非常に包括的で強力なソフトウェアを作成することです。

テストソフトウェアは通常、機械的環境テスト中に実行されます。

2.SpaceXエンジニアはネチズンからの質問に答えます

Q:ナビゲーション/推進制御システムに使用されているオペレーティングシステムはどれですか?

回答:DragonSpacecraftとFalcon9はLinuxを使用しています。

Q:主なプログラミング言語はどれですか?

回答:ロケットと宇宙船はどちらもC ++です。

【説明】:子供靴について質問があるかもしれません。前回の記事で言及したテクノロジースタックはPythonについて言及していましたが、なぜそれがどこで使用されたのかを述べていませんでした。テストチームが自動テストを行ったとき、彼らはPythonスクリプトを使用していたに違いありません。

Q:現在の最大のプロジェクトコード量はいくつですか?

回答:車両コードは約10万行です。

Q:メンテナンスは面倒ですか?

回答:問題ありません、これが私たちの仕事です!実際、私たちはコードベースに非常に満足しています。

Q:最もやりがいのあるプロジェクトは何ですか?どうして?

回答:国際宇宙ステーションとのドラゴン宇宙船のドッキングは大きな課題です。多くの新しいコードを開発する必要があるためです。

(プログラマーからの追加:本日打ち上げに成功したドラゴン宇宙船は、宇宙ステーションとのドッキングを自動的に完了することができます。第1世代のドラゴン宇宙船は宇宙ステーションのロボットアームを使用する必要があります。もちろん、有人ドラゴン宇宙船は手動ドッキングのオプションも保持しています。SpaceX 2013年、ドラゴン宇宙船は初代であり、私はチェックしませんでした。

Q:最も達成されていることは何だと思いますか?

回答:ドラゴン宇宙船は国際宇宙ステーションとドッキングします。

Q:仕事と生活のバランスをどのように取っていますか?SpaceXでは仕事のバーンアウトが簡単だと聞きました。あなたは皆苦しんでいますか?

回答:SpaceXは中小企業の精神を体現しています。私たちは皆、SpaceXとその成功に投資しています。そうは言っても、私たちの労働時間はもっと長いです。最終的な分析では、それはあなたの人生で最も重要なものに依存します。もちろん、私たちは仕事の燃え尽きに対処しなければなりません、そしてそれは休暇です:-)。

個人的には、ほとんどの場合、12〜14時間働いていることに気づいていません。時計を見て「本当に速いのはどこ?」と思いました。これは、私たちがこのプロジェクトにどれほど興奮しているかを証明していると思います。あなたが本当に仕事を楽しんでいるとき、それはあなたが働いているようには感じません。そうは言っても、私は正気を保つために時々休暇を取ります。

(プログラマー向けの追加:SpaceXの採用情報を確認しました。多くの技術職には基本的に追加の要件があります。必要に応じて残業できます。 )

天体物理学の学位を取得するために勉強していた子供の靴もあります:

航空宇宙産業にとって、最も一般的に使用されている/最も有用なプログラミング言語は何だと思いますか?私はプログラミングの経験がほとんどなく、この業界のあらゆる側面/研究にはプログラミングの特定の理解が必要であると思われるため、本当に学び始めたいと思っています。

SpaceXエンジニアからの回答:

すべてのソフトウェアエンジニアにとって、C言語は優れたエントリ言語です。CPUがどのように機能するか、メモリがどのように機能するかなどを学習する必要があります。C言語をマスターしたら、C ++を見てください。

チームメンバー全員が異なるバックグラウンドを持っており、特別な道はありません。私たちは皆、同じ道に沿ってここを歩きました。個人的に、私が学校で得た最高の経験は、個人的なプログラミングプロジェクトを行うことです。最近では、オンラインストアやアプリケーションストアで、製品を作成し、他の人に見てもらうために自分の作品を公開する機会がたくさんあります。


最後に、ビデオが添付されています。SpaceXDragon宇宙船が宇宙飛行士を国際宇宙ステーションに送る方法を示すアニメーション

(Tencent Spaceから転送されたビデオ)

おすすめの読み物タイトルをクリックしてジャンプ

飛行機には一般的にどのようなオペレーティングシステムがありますか?

Boeing777航空機はAda言語で駆動されます

「プログラマーのもの」スターに注意を払い、サークルをお見逃しなく

サークルの中、私は❤️を見ています

おすすめ

転載: blog.csdn.net/P5dEyT322JACS/article/details/106464145