SpaceXが゜フトりェアを䜜成する方法



゚ンデバヌカプセル



SpaceXのダグラスハヌレヌずボブベンケンは、いく぀かの方向でプロゞェクトを急速に開発しおいたす。Falcon 9ロケットの最初のステヌゞは、ペむロヌドを宇宙に発射した埌、Starshipプロトタむプのテストず同様に、再利甚のために地球に戻りたす。クルヌドラゎンは乗組員をISSに配達し、第2䞖代のドラゎントラックが準備されおいたす。スタヌリンク通信衛星の矀れは、オヌプンベヌタテストの実際のナヌザヌのために毎秒100メガビット以䞊を生成しおいたす。



これらのプロゞェクトはすべお、゜フトりェア開発チヌムの責任である高床な自動化を必芁ずしたす。SpaceXの専門家は、喜んでそれに぀いお話したす。それは、募集職皮の応募者を匕き付けるために重芁であるだけでなく、他のすべおの人にずっおも興味深いものです。



空間の耇雑さ



1966幎12月14日、Soyuzの無人テスト打ち䞊げで、7K-OK No.1宇宙船が発射台に着陞したした。゚ンゞンの1぀にあるラむタヌが機胜したせんでした。ロケットが発射台の衚面から分離する前に、自動化によっお発射シヌケンスが停止したした。担圓者はロケットに近づいお怜査し、再起動の可胜性を評䟡したした。 Soyuzの緊急救助システムSASが突然オフになりたした。そのパりダヌ゚ンゞンは、降䞋車䞡を泚意深く700メヌトルの高床たで運び、パラシュヌトの力を䞎えたしたが、地球䞊に残っおいた蚈噚宀の熱制埡システムのこがれた可燃性液䜓にも点火したした。ロケットの䞊郚が点灯したした。Chertokが思い出すように、Nedelin灜害の蚘憶実行時に発射台を離れるこずを人々に匷制したした。䞀人が亡くなりたした。



静止ロケットでSASが䜜動する理由の解明は、発射台を消す前から始たった。飛行䞭、ロケットは蚈算された軌道からの慣性基準システムの偏差を垞に比范したす。差が倧きすぎる堎合、SASがトリガヌされたす。発射台の䞊に立っおいるロケットはただ動きたす。それは地球ず䞀緒に回転し、ゞャむロスコヌプは星に「結び付けられ」たす。緊急システムを蚭蚈するずき、地球は静止しおいるず想定されおいたした。 27分で玄8床が「走り」、32回のSASパむロテクニックチャヌゞで点火信号が受信されたした。



この「バグ」は、珟代のコンピュヌタヌの耇雑さがなくおも芋過ごされおいたした。宇宙船のすべおの重芁なシステムは珟圚、電子機噚によっお制埡されおいたす。これは、1962幎のMariner 1プロヌブの「歎史䞊最も高䟡なハむフン」でさえありたせん。珟代のシステムでは、゚ラヌのスペヌスは数䞇、数十䞇行のコヌドです。目立った゜フトりェア障害は、䜜業の品質を䜎䞋させたり、デバむスの損倱に぀ながるこずさえありたす。



方向性の成熟ず航空宇宙開発の文化そのものが、「幌皚な」過ちを打ち消したようです。しかし、そうではありたせん。これたで、ロケットは可倉倉換゚ラヌで爆発し、ロヌバヌは優先反転でハングし、軌道プロヌブは間違った枬定システムの倀が原因で萜䞋したす。クルヌドラゎンの盎接のラむバルであるスタヌラむナヌでさえ、゜フトりェアの品質のためにISSに到達したせんでした。





SpaceXは、詊行錯誀の文化を愛するこのビデオを投皿したし



た。SpaceXの䟋は、このような背景に興味がありたす。顕著な成果を䞊げたこの比范的若い䌚瀟は、小さなチヌムが迅速に開発しおテストする゜フトりェアがなければ実珟しなかったでしょう。



x86のファルコン



問題は、コヌドの信頌性だけでなく、ハヌドりェアに察しおもスペヌスが敵察的であるこずが原因で発生したす。地球䞊では、磁堎ず倧気によっお攟射線から保護されおいたす。宇宙では、高゚ネルギヌ粒子の流れがメモリセル内で簡単に1をれロに倉えたり、コンポヌネントを完党に無効にしたりするこずがありたす。宇宙マむクロ゚レクトロニクスは、少なくずも特別な認蚌を必芁ずし、時には特別なマむクロ回路、䟋えば、シリコンオンサファむア半導䜓技術に頌りたす。



SpaceXは、宇宙機噚に察する確立されたきしむような態床を無芖しおいたす。創業以来、同瀟は比范的安䟡なコンポヌネントぞの愛情で際立っおいたした。たずえば、2005幎にゞャヌナリストは、Falcon1ロケットのコンピュヌタヌが通垞のむヌサネットケヌブルを介しお通信したず報告したした。



SpaceX瀟の゚ンゞニアは、 蚀われ1、2をGDC 2015カンファレンスで、ファルコン9ロケットは、各段階での3のx86デュアルコアのコンピュヌタを持っおいたす。各コンピュヌタヌでは、2぀のコアのそれぞれで、フラむト゜フトりェアを備えたオペレヌティングシステムが互いに独立しお実行されたす。ロケットにはPowerPCマむクロシステムも含たれおいたす。それらは、モヌタヌ、栌子ラダヌなどのさたざたなアクチュ゚ヌタヌを制埡したす。



このすべおの機噚は、アクタヌゞャッゞシステムに統合されおいたす。



  • ほずんどすべおがTAUの䌝統的な制埡ルヌプの圢で衚珟されたす。センサヌから2番目のデヌタが䜕床も受信され、センサヌずシステムの過去の状態が決定され、コンピュヌタヌがデバむスに信号を送信したす。
  • . . , .
  • . , , . , .
  • Falcon 9 .


このアヌキテクチャは、地球䞊でのテストを簡玠化し、必芁なレベルの攟射線耐性を提䟛したす。特別に高䟡なマむクロ回路は必芁ありたせん。さらに、劎働垂堎の少数の開発者だけが知っおいるアヌキテクチャを備えおいる堎合がありたす。



制埡コンピュヌタは、いわゆるテヌブルロケットベンチ「テヌブル䞊のロケット」でテストされたす。 Falcon 9の「頭脳」は平らな面に配眮され、実際のロケットで機胜するように接続されおいたす。次に、スペシャリストは完党にシミュレヌトされたフラむトを開始し、システムの動䜜、パフォヌマンス、および考えられる障害を監芖したす。シミュレヌション䞭、ロケットがこれにどのように反応するかを理解するために、フラむトコンピュヌタの1぀をオフにするこずができたす。



たた、制埡システム党䜓を1぀のワヌクステヌションで仮想化できるため、倧芏暡な自動テストず飛行のコヌド怜蚌を1日で実行できたす。



同様のトリプル冗長システムがドラゎン宇宙船に蚭眮されおいるずGDC2015で述べられたした。2020幎の回答で、埓業員は、クルヌドラゎン宇宙船が5幎前のスマヌトフォンに匹敵する凊理胜力の別のクアッドコアプロセッサによっお制埡されおいるこずを挠然ずほのめかしたした。



䞀般に、SpaceXは正確なプロセッサモデルを報告したせん。おそらくPowerPCコントロヌラヌは耐攟射線性のRAD750ですロヌバヌずプロヌブで十分に実蚌されおいるx86プロセッサヌは、発熱が少なく、パフォヌマンスが䞭皋床の産業甚組み蟌み゜リュヌションです。



しかし、スペヌスはあたり必芁ありたせん。ISS自䜓は、80387数孊コプロセッサを搭茉したIntel 80386SX-20プロセッサによっお制埡されおおり、ステヌションの立ち䞊げ時でも、10幎前の補品でした。



ブラりザのスペヌスに



5月30日、SpaceXは初めお人間を軌道に乗せたした。最埌に、乗組員を囜際宇宙ステヌションに届けるための2番目のオプションがありたした。 2011幎以来、これに察する唯䞀の解決策はロシアの゜ナズでした。



オンラむン攟送の聎衆は、クルヌドラゎンの船が3人乗りの゜ナズカプセルよりもどれだけ倧きく芋えるかに気づきたした。同様の内郚容積を持぀SpaceX宇宙船は、ナニオンの2.2メヌトルに察しお盎埄4メヌトルです。SpaceXは圓初、宇宙船を7人乗りずしお宣䌝しおいたしたが、NASAは有人ドラゎンで4人の宇宙飛行士を打ち䞊げたす。



物理的な違いに加えお、最も目立ったのは人々が船を操䜜する方法でした。 「゜ナズ」は航空宇宙工孊の䌝統から逞脱しおいたせん。乗組員がトグルスむッチずキヌを抌すず、信号板に情報が衚瀺されたす。 CruDragonはすべおを独自の方法で実行したす。未来的なSpaceX船の堎合、タッチスクリヌンが䞻芁な芁玠です。



クルヌドラゎンの画面は、Chromiumブラりザ゚ンゞンを搭茉しおいたす。぀たり、むンタヌフェむスはWebコンポヌネント、JavaScript、CSSを䜿甚しおHTMLで構築されおいたす。圌らは独自のリアクティブラむブラリを瀟内で䜜成したした。むンタヌフェむスの開発は、ナニットテストをカバヌするための高い基準を備えたアゞャむル手法に埓いたす。





ブラりザドッキングシミュレヌタのスクリヌンショット。



最初の有人打ち䞊げの前に、SpaceXはISSにドッキングするクルヌドラゎンのブラりザベヌスのシミュレヌタ。シミュレヌタヌは、䌚瀟の2人の開発者の趣味ずしお始たりたした。それから圌らはそれを完成させお䞀般に公開するこずに決めたした。



シミュレヌタヌはシミュレヌタヌのたたです。実際のコヌドずは䜕の関係もありたせん。どちらの補品も同じチヌムによっお䜜成されたしたが、2぀のたったく異なるプロゞェクトです。



これはすべお、宇宙船がJavaScriptで飛行するこずを意味するものではありたせん。船内のクロムは、UI芁玠のレンダリングツヌルずしおのみ䜿甚されたす。 SpaceXの関係者によるず、フラむト゜フトりェアむンタヌフェむスには必芁な冗長性がすべお備わっおおり、ディスプレむの倖偎に配眮されおいたす。バック゚ンドはC / C ++で蚘述されおいたす。



宇宙船の通垞のブラりザ゚ンゞンは倧胆な決断です。回答では、SpaceXの埓業員は保蚌したした技術スタックに関係なく、開発基準は同じであり、信頌性が高く効率的な゜フトりェアを䜜成する原則は倉わりたせん。起こりうる゚ラヌを理解するために、テストはさたざたな条件䞋で行われたす。拒吊された堎合は、適切な通知ず手順がありたす。最埌に、地球䞊の飛行シミュレヌタヌに関する数癟時間の宇宙飛行士の蚓緎がテストに远加されたす。



念のため、物理キヌはタッチスクリヌンの䞋にありたす。これらは、船のコックピットでの火灜などの重倧な状況向けに蚭蚈されおいたす。ディスプレむから呌び出すこずができるほずんどの操䜜には、物理​​的な「開始」ボタンず「䞭止」ボタンもありたす。 NASAは画面自䜓に特定の芁件を開発しおおり、SpaceXの゜リュヌションはそれらに䞀臎したす。



SpaceXの埓業員も説明したした圌らが航空宇宙産業のためにそのような䞀芋型砎りな解決策にどのように到達したか。このプロゞェクトは、NASAのサンプルデザむンを玹介するためのプロトタむプずしお始たりたした。その埌、プロトタむプは実際のフラむトハヌドりェアで正垞に起動されたした。開発者は、ブラりザ゚ンゞンに存圚する最新の機胜を気に入っおおり、垂堎には十分な開発者がいたす。





この図は、JavaScriptコヌドがJames Webb望遠鏡の䞻芁な制埡システムからどのように分離されおいるかを瀺しおいたす



。SpaceXの経隓を陀けば、スペヌスフィヌルドにJavaScriptを遞択するこずに法倖なこずは䜕もありたせん。James Webb Space Telescopeの堎合、JSコヌドは車䞡䞊で盎接実行されたす。たずえば、モヌタヌを盎接制埡するのではなく、他のプログラムを呌び出すだけです。



なぜ宇宙に音が出ないのですか



ロケットはLinux䞊を飛ぶからです。



Falcon9゜フトりェアは定期的に曎新されたす。ほずんどすべおのロケット発射は、わずかに曎新されたコヌドで飛行したす。曎新は非垞に頻繁に行われたすが、特定の起動ごずの「ベヌス」は特に調敎されおいたせん。これは、他のSpaceX郚門によっお行われ、フラむト構成を独自に調敎したす。぀たり、打ち䞊げ日に颚の倉数を蚭定したり、耐障害性の制限を倉曎したりしたす。



Crew Dragonは、リアルタむム操䜜甚のPREEMPT_RTパッチを䜿甚しおLinuxオペレヌティングシステムによっお制埡されたす。 SpaceXは䜿甚したせんいく぀かの暙準的なサヌドパヌティの配垃。同瀟は独自のカヌネルず関連ナヌティリティを構築したした。開発の幎月の間、カヌネルはほずんど倉曎されおいたせん。ハヌドりェアを操䜜するための小さな倉曎ずいく぀かの専甚ドラむバヌのみがありたした。



䜿甚されおいるオヌプン゜ヌスプロゞェクトには、Das U-Bootオペレヌティングシステムロヌダヌ、Buildrootディストリビュヌションビルドシステム、C ++暙準ラむブラリ、およびMuslCラむブラリがありたす。しかし、䞀般的に、SpaceXは瀟倖で䜜成された゜フトりェアをあたり䜿甚せず、可胜な限り最高の品質のオヌプン゜ヌスプロゞェクトのみを遞択したす。



SpaceXでは、テストはPythonで蚘述され、LabVIEWでテストされ、飛行したす。C ++で。C ++で曞くずき、圌らは蚀語のオブゞェクト指向の技術を䜿甚したすが、すべおを可胜な限り単玔に保぀こずを奜みたす。



コヌドレベルのSpaceXは、補正アルゎリズムを䜿甚しおサステナたたはシャント゚ンゞンを倱うこずで通垞の動䜜の可胜性を提䟛したす。あらゆる皮類の緊急事態が有限状態のマシンに組み蟌たれおいたす。䟋えば、船「ドラゎン」のステヌトマシン敷蚭いく぀かの障害がある堎合は駅に近いから自埋移行が気にしたす。



SpaceXによるず、ナビゲヌションにはある皮のマシンビゞョンが䜿甚されおいたすが、Dragonには「AI」おそらくニュヌラルネットワヌクアルゎリズムを意味したすはありたせん。開発者は説明したしたそれは将来のい぀か機械孊習プログラムの䜿甚を陀倖するものではありたせん。



スタヌリンク



スタヌリンクサテラむトむンタヌネットプロゞェクトはさらに倚くのコンピュヌタヌです。 Falcon 9ロケットは、打ち䞊げのたびに、4,000台を超えるLinuxコンピュヌタヌを含む60個の衛星を軌道に打ち䞊げたす。 SpaceXは、数䞇のLinuxノヌドず1,000を超えるマむクロプロセッサを䜎地球軌道に投入したした。





アニメヌションは、衛星の゜ヌラヌパネルがどのように



展開されおいるかを瀺しおいたす。6か月前、Starlinkは1日あたり玄5 TBのテレメトリヌを生成し、星座は倧きくなっただけです。衛星の数は増え続けおおり、送信されるデヌタの量を枛らすための䜜業が進行䞭です。ボヌドに保存されお地球に送信されるデヌタの量を枛らすために、問題のいく぀かはデバむス自䜓で蚺断されたす。



Starlinkの各衛星は、ホヌル゚フェクトモヌタヌを搭茉しおいたす。このため、衛星は矀れの䞭で望たしい䜍眮を取り、宇宙の砎片ずの衝突を回避したす。しかし、これらの操䜜は䟝然ずしお正しく行われる必芁があり、最倧の衛星コンステレヌションのコマンド郚門は小さいです。



したがっお、プログラマヌは戞惑いたした衝突を回避し、衛星の䜍眮を自動的に制埡する方法。開発されたシステムでは、衛星はどのりィンドりに入るかを尋ねられたす-そしお圌らは独立しおそこに行きたす。たた、衛星は1日に数回、軌道䞊の他の物䜓ぞの接近に関するデヌタを地球から受信したす。次に、衛星は必芁な操䜜を独自に蚈算し、宇宙の残骞から離れたす。



Starlink衛星の堎合の内郚システムの耇補は、特定の制限たでしか実行されたせん。コンパニオンの総数により、チヌムは兵士の喪倱に気付くこずはありたせん。 1぀のノヌドに障害が発生した堎合、地球䞊のナヌザヌは空に芋える別の衛星に接続したす。



開発およびテスト䞭、Starlinkの各船団衛星は個別の衛星ずしおではなく、デヌタセンタヌ内のサヌバヌず芋なされたす。管理、゜フトりェアの曎新、電源、セキュリティなど、いく぀かのタスクは重芁です。これらのアプリケヌション甚に個別のテストが䜜成されたす。他の倚くの機胜により、Webサヌビスの開発ず同様に、より柔軟なアプロヌチが可胜になりたす。したがっお、チヌムはテストビルドを少数の衛星に展開し、他のコンステレヌションず比范しおそれらの動䜜を比范したす。さらに、問題が発生した堎合、゜フトりェアは改善されるか、以前のバヌゞョンにロヌルバックされたす。



このテストプロセスは、システムを迅速に改善するために必芁です。 SpaceX瀟の開発者が䞻匵する、地球䞊で予枬するこずは䞍可胜だった䞍具合を芋぀けお修正するこずが可胜であったこずを䜕回も。



Starlink衛星はそれを介しおナヌザヌデヌタを挏らし、コンピュヌタヌのハッキングが盗聎される恐れがありたす。SpaceXはこれを提䟛し、゚ンドツヌ゚ンドの暗号化を远加したした。たた、各コンポヌネント衛星、ゲヌトりェむ、ナヌザヌ端末は眲名されたコヌドのみを実行するため、攻撃者はシステムに長期間登録されたせん。



開発文化



SpaceXの゜フトりェア゚ンゞニアのほずんどは、ワシントン州シアトルずカリフォルニア州ホヌ゜ヌンで働いおおり、䞀郚はテキサス州のオフィスで働いおいたす。





SpaceX゜フトりェア開発チヌム、2013幎



埓来の航空宇宙産業は、開発のスピヌドずSpaceXの郚門の芏暡の䞡方に圧倒されおいたす。 2019幎ポッドキャスト、マヌク44:00ず同様に、米空軍の最高゜フトりェア責任者であるニコラス・チラン氏は、政府機関が少なくずも2,500人のプログラマヌを必芁ずする堎合、SpaceXは50人を雇甚しおいるず述べたした。同時に、開発チヌムは9぀の異なるマシンず24時間でコヌドをチェックしたす。



SpaceXは、ゲヌム業界から開発者を匕き付けようずしおいたす。 GDC 2015で、䌚瀟の代衚者は、コンピュヌタヌサむ゚ンスの孊䜍を持っおいる人はメモリ管理スキルを持っおいないず述べたした。意倖にも、ゲヌム開発者の仕事のペヌスず最適化の方法は、スペヌスに適しおいたす。以䞋のようむヌロン・マスクは蚀う、MMOに比べお、2隻の船をドッキングするこずは基本です。



2013幎のRedditでのAMAの䞀環ずしお、埓業員は゜フトりェア開発郚門の構造に぀いお話したした。



  • 7 35 . : Falcon 9, Grasshopper Dragon. , , . .
  • SpaceX.  â€” - . , , , . , SpaceX .  â€” - : C#, MVC4, EF, SQL; Javascript, Knockout, Handlebars, LESS; REST API, «super sexy».
  • 2013 9 , . , . .
  • . .  â€” .


同瀟は垞に開発者ず゚ンゞニアを雇甚しおおり、すべおのポゞションで特別な教育が必芁なわけではありたせん。 SpaceXのオフィスには、旧USSRのスペヌスを含め、さたざたなアクセントがありたす。軍事技術の茞出管理䜓制には制限がありたすが、同瀟はアメリカのパスポヌトの所有者だけでなく、雇甚するこずもできたす。倖囜人を雇うには、居䜏蚱可米囜のグリヌンカヌドが必芁です。れロから取埗するには数幎かかりたす。すでに「グリヌン」がある堎合、問題はむンタビュヌで資栌のレベルを瀺す胜力だけにありたす。



SpaceXのCEOå…ŒCTOのElonMuskは、週40時間の劎働が嫌いなこずで知られおいたす。圌は繰り返し述べおいたすそれは週に80-120時間働きたす。ポップずは䜕ですか、教区もそうです。SpaceXに関するGlassdoorに関する䞀般的な䞍満 ã¯ã€ç”ŸæŽ»ãšä»•事のバランスが悪いこずです。匿名の蚌蚀では、埓業員ず研修生が頻繁なバヌンアりトず珟圚䞀般的な12時間のシフトに぀いお話したす。



All Articles