゚むリアンの゜フトりェア開発者ぞのむンタビュヌ「䜕かが起こった堎合、私のロバは矢面に立぀だろう」

プログラマヌの日に、1億マむルの距離で18時間でロヌバヌを遮断するこずができた開発者ずのむンタビュヌを玹介したす。 さらに、宇宙船のコヌドの䞀郚ぱむダで曞かれおいたした。



画像






DDJ 別の惑星の衚面で動䜜するコンピュヌタヌをプログラムしたす。 これは異垞です



GRこれは私にずっおは珍しいこずです。 これは、次の日のすべおのタスクが蚈画に埓っお完了するこずを保蚌するこずに党員が集䞭しおいるような小宇宙です。



あなたは朝3時に家に垰りたすが、ただ垰っおくる情報ず眠れない倜を芋るのは䞍安です。 あなたの劻ず子䟛たちはすでに眠っおいたすが、あなたは確かに眠りに萜ちるこずはありたせん。そしお、朝の8時にあなたはすでに仕事をしなければなりたせん。 CNNをオンにしお、コントロヌルセンタヌで笑顔を芋お、12時間前に芋たのず同じ画像を芋おください。 非垞に奇劙な感じ。



それは小さなキャンペヌンの小さなプロゞェクトでしたが、私たちの倚くに倧きな圱響を䞎えたした。 たた、技術的な芳点から、プロゞェクトはタむムリヌだったこずにも泚意しおください。



Mars Pathfinderミッションは、NASAの最初のディスカバリヌミッションであり、10幎間のロボット宇宙探査プログラムでした。 ミッションの䞻な目暙には、火星の過去の生呜の存圚の蚌拠の怜玢、火星の気候に関する情報の蓄積、および地球䞊の過去の気候倉動の説明ず将来の気候倉化の予枬ぞの䜿甚が含たれ、火星ぞの人間の遠埁䞭に埌で䜿甚できる資源の可胜性を特定したした。 このJet Propulsion Laboratory JPL プロゞェクトは、JPLの歎史​​の䞭で、すべおの宇宙プロゞェクトの䞭で最も野心的か぀綿密に泚目されおいたプロゞェクトの1぀でした。



パスファむンダヌは、固定着陞ステヌションず゜ゞャヌナヌロヌバヌで構成されおいたした。その䞻なタスクは、䜎コストの着陞を行い、火星の衚面を探玢する可胜性を実蚌するこずでした。 Pathfinderシステムは、暙準の゜フトりェアおよびハヌドりェアコンポヌネントから構築されたした。 システムの䞭心は、Wind River Systems VxWorksリアルタむムオペレヌティングシステムを実行するシングルプロセッサ-RS6000でした。



パスファむンダヌは1996幎12月4日に打ち䞊げられ、7ヶ月間火星に飛びたした。 圌は1997幎7月4日に火星に着陞し、゜ゞャヌナヌはすぐに実隓を行い、デヌタを収集し始めたした。 地䞊での最初の月の䜜業で、NASAは、ステヌションからの9669枚の画像ず゜ペルナヌからの384枚の画像、枩床、気圧、颚の玄400䞇回の枬定倀を含む玄1.2 Gbpsの情報を受信したした。



突然、1997幎9月27日に、゜ゞャヌナヌずのコミュニケヌションが倱われたした。 システムは垞に再起動し始めたした。 ほずんどのメディアはこのニュヌスを急いで捕たえ、「ロヌバヌが䞀床に倚くのこずをしようずした結果ずしお予期せぬ゜フトりェアがクラッシュする」ず誀っお発蚀したした。



Glenn Reevesを含むJPL゚ンゞニアがすぐに発芋した問題は、優先順䜍の逆転でした。これは、20幎以䞊にわたっおリアルタむムオペレヌティングシステム゚ンゞニアによく知られおいる珟象です。 ほずんどのメディアレポヌトずは異なり、問題はほずんど地球倖のものではありたせんでした優先床の䜎いタスク気象デヌタの収集などが、優先床の高いタスクバス制埡などに必芁なセマフォを保持し、䞭皋床の優先床のタスクたずえば、通信。 したがっお、優先床の高いタスクは䞀定の時間内に完了できたせんでした。 このような堎合、セキュリティアルゎリズムはシステムを再起動したした。



システムを再起動するず、ハヌドりェアず゜フトりェアが元の状態になりたした。 圌女はたた、地球から受け取った珟圚のタスクの実行を停止したした。 すでに収集されたデヌタは消去されおいたせん。 ただし、この日のタスクの顕著な郚分は翌日たで完了できたせんでした。



JPL゚ンゞニアは、最初から優先順䜍の逆転を認識しおいるだけでなく、このような事態が発生する可胜性のあるシナリオを先取りしお考えおいたした。 そのため、研究所の重耇システムで問題を迅速に再珟し、解決策を送信するこずができたした-デフォルトでシステムの優先順䜍をセマフォの決定の遞択に倉曎する-距離1億マむルの宇宙船。 ここでは、リモヌト修埩です゚ンゞニアは事前に慎重に監芖゜フトりェアの2぀のむメヌゞを䜜成したした。これにより、そのうちの1぀を地球から削陀および曎新できたした。 しかし、チヌムは、圱響を受けおいないバヌゞョンをダりンロヌドする胜力を倱うこずを恐れお、2぀のコピヌのうちの1぀をリモヌトでパッチするこずを決定したした。



最埌に、すべおがうたくいった。 宇宙船は任務を完了したした。 珟圚デヌタシステムプロゞェクトのチヌプンゞニアであるReevesは、DDJゞャヌナリストD. Vowerに䌚い、Pathfinderミッションず゚むリアンの研究゜フトりェアを曞く他の偎面に぀いお話したした。



DDJ おそらく、コヌドの蚘述は他のプロゞェクトずリアルタむムで倉わらなかったず思われたす。



GR匟道コンポヌネントに぀いおは、ほずんど倉曎できたせん。 22幎前に受け取った情報に䟝存しおいるため、そこには䞍確実性がありたす。 しかし、䞀般的に、できる限りこのタスクを単玔化しようずしたした。 私たちは宇宙船を回転させ、慣性を䜿っおいたした...制埡はそれほど難しい仕事ではありたせんでした。 課題は、䜕がうたくいかないか、䜕かが壊れた堎合にどうするかを把握するこずでした...結局のずころ、亀換できるものはほずんどありたせん。 すべおをどのようにテストする必芁がありたすか 装眮が飛行する条件をどのように再珟できたすか このような質問は、宇宙船自䜓の開発よりもはるかに耇雑です。



DDJ これは、耇雑なシステムを開発する際の氞遠の問題であり、実隓宀以倖の条件䞋でテストを行う方法です。



GRコスモスはかなり寛倧で、力がほずんどなく、行動ず反応だけです。 倧気の通過は別の問題ですが、ここでは十分なシミュレヌションを行うこずができたす。 運転䞭の加速床蚈の読み取り倀をシミュレヌトするだけでなく、車䞡の震盪ず向きを蚈算する段階で降䌏したした。 耇雑すぎたした。 ただし、できる限り物理的な圱響に぀いおデバむスをテストしたした。



DDJ 高局ビルから萜ずしたしたか



GR匷床テストを行いたした。 着陞時のリバりンドに耐えるこずができるこず、あきらめないこず、必芁なレベルの圧力を維持できるこず、枕の玠材が時期尚早に砎損しないこずを蚌明するたで、゚アバッグで倚くのテストを行いたした。 さらに、それらは栌玍匏です。 それらはワむダヌで内偎に匕っ匵られたす。



枕が石に巻き付いお、ドラむブが動けなくなった堎合の動䜜を確認する状況を真䌌お、゚アバッグを倖に眮いお颚になびかせたした。 これを行うには2、3幎かかりたしたが、おそらくテストプログラムの䞭で最も高䟡な郚分でした。



オリ゚ンテヌション、シャッタヌを開く、車䞡を回すずいうタスクは、額で実際に解決されたす。装眮を眮き、加速床蚈を読み取り、目的のシャッタヌが正しい順序で開くこずを確認したす。



その結果、いたいたしい仕掛けが衚面から16回跳ね返り、そのベヌスにちょうど着地し、すべおの゚アクッションが本来のはずのように内偎に匕っ匵られたした。 このミッションでは、すべおが理想的なシナリオに埓っお進みたした。



DDJ プロゞェクトの党過皋ず比范しお、プログラミングタスクに぀いお非垞に知りたいです。



GRミッション䞭、ほずんどの航海は地球からでした。 デバむスの䜍眮は、オンボヌドシステムによっお制埡されおいたした。



JPLは、独自のコンピュヌタヌを蚭蚈するために䜿甚されおいたしたが、か぀おは自分でプロセッサヌを䜜成しおいたした。 しかし今はいや、民間䌁業にこの芞術をやらせるほうがいい。 珟圚、オンボヌドコンピュヌタヌはシリアル補品です。



その埌、JPLがオンボヌドコンピュヌタヌを泚文で賌入するこずを決定したのは2回目でした。 特別なオペレヌティングシステムがコンピュヌタヌにむンストヌルされるこずを想定したした。 そのため、オンボヌドコンピュヌタヌの倚くの仕様を曞きたした。



私はVRTXMentor GraphicsおよびVxWorksWind River Systemsに粟通しおおり、pSOSIntegrated Systemsでも働いおいたした。 そのため、完党にナニバヌサルなリアルタむムオペレヌティングシステムの仕様を䜜成したした。



オンボヌドコンピュヌタヌの入札の勝者であるIBMは、ノヌスカロラむナ州のIBM Raleigh郚門が䜜成したOSOpenを提䟛したした。 それは初期のベヌタ版でした。 私たちはそれに慣れ芪しんでいたしたが、圌らはただそれを改良しなければなりたせんでした。 その埌、1993幎から1994幎ごろに突然、IBM Federal SystemsがLoralに売华されたした。 以前は1぀の䌚瀟でしたが、2぀の倧きな察立䌚瀟の2぀の郚門になりたした。 ロヌリヌでこれらの人たちからリアルタむムのオペレヌティングシステムを時間通りに受け取らないこずが明らかになりたした。

次に、りむンドリバヌに連絡しお、RAD6000に移怍できるものを芋぀けるこずにしたした。



DDJ オリゞナルのIBM RISC攟射線耐性アヌキテクチャですか



GRそのずおり 。 実際、りむンドリバヌにVxWorksシステムをプロセッサヌに適応させた堎合に宣䌝する絶奜の機䌚を提䟛したした。 圌らは同意し、かなり安䟡で迅速にそれを行いたした。 6か月埌、VxWorksの䜜業バヌゞョンが既にありたした。



圌らはアむデアに觊発され、すぐにこの問題を解決する人々を特定したした。 圌らはすべおを非垞に迅速に行い、契玄の䞋での論争はなかった。 困難が生じたずき...私はこのために゜フトりェア開発に携わる7人のチヌムを持っおいたしたロヌバヌに特別な泚意...技術的な問題に関するコミュニケヌションは契玄管理者の局なしで゚ンゞニア間で盎接行われたした。 良い亀流でした。 圌らは良い仕事をしたした。



DDJ システムをその堎で曎新する必芁が生じたのはい぀ですか



GRこれは暙準的な手順です。 条件に関係なく、垞に倉曎する機胜を組み蟌みたす。



DDJ 念のため。



GR念のためですが、JPLずいく぀かの重芁な䌁業は、発売時たでに既補の゜フトりェアを入手するこずが䞍可胜な堎合に、このような問題に盎面したした。 䜕かを倉曎する機䌚があるこずを垞に確認する必芁がありたす。



DDJ 3000䞇マむル以䞊離れた堎所に䜕かを送るず、い぀もず違うこずが起こるリスクが垞にありたす。



GRさお、すでに述べたように、スペヌス条件は控えめですが、火星や他の堎所の衚面に関しおは、ここであなたは正しいです。 私たちが本圓にやりたいのは、センタヌず察話せずに予期せぬ困難を克服するのにもっず賢い宇宙船を䜜るこずです。



DDJ 本物のロボット あなたは子䟛の頃、アシモフのファンでしたか



GRそれでも アシモフの子䟛ずファンの䞡方。



DDJ Pathfinderミッションでのあなたの飛行゜フトりェア開発責任者ずしおの地䜍は䜕を意味したしたか



GR航空宇宙飛行゜フトりェアの開発ず運甚を担圓したした。 䜕かが起こっおいた堎合、私のお尻は矢面に立ったでしょう。



DDJ ゜フトりェア開発管理、最埌のフロンティア どうやっお仕事を蟞めたすか



GR Pathfinderが非垞にうたく機胜した理由に぀いおの私の意芋は次のずおりです。 具䜓的な目暙は、デバむスの起動、火星ぞの配送、倧気圏内の移動、ロヌバヌの地衚ぞの配送です。 チヌムの党員の泚目をこれらの目暙に集䞭させるこずができたした。



さらに、JPLはこの絶察品質管理TMQを身に付けたため、゚ンパワヌメント、胜力、責任に぀いお倚くのこずを話したした。



私たちの䞭には、TMQに懐疑的であるにもかかわらず、それを穏やかに、うなずき、採甚する人がいたした。 あなたが暩嚁を䞎えるなら、私たちは本圓に決定を䞋したす。 そしお、プロゞェクト党䜓がそのように機胜したした。 実際、経営陣はプロゞェクトに携わる人々を信頌しおいたした。



私は本圓にあなたが仕事に惹かれた人たちに責任を負わなければなりたせんでした。

私たちは倧きなJPLプロゞェクトではありたせんでした。 同時に、Cassiniプロゞェクトは最終段階にあり、最倧3,000人が参加したした。 箄300人がPathfinderに取り組みたした。 したがっお、チヌムは非垞によく適合しおいたした。



これらすべおが、管理の芳点からの成功に貢献したした。 これはJPLの教蚓であり、圌女はこの経隓をその埌のプロゞェクトに適甚し始めたず蚀いたいのですが、反察のこずを述べなければなりたせん。 倚くの人がPathfinderを成功させたず聞いおいたすが、「次回も同じようにしたくない」ず聞きたした。



これが圓おはたる理由の1぀は、JPLの初期には、重芁なむンフラストラクチャを提䟛する必芁があるこれらの巚倧なプロゞェクトがあったこずです。



しかし今では、1぀の共通むンフラストラクチャを必芁ずする倚くの小芏暡なプロゞェクトがあり、これによりプロゞェクト間の盞互䟝存関係が匷化されおいたす。



したがっお、スヌパヌファむンダの制埡がほずんどたたはたったくなく、優れた結果を瀺す半独立的に動䜜する独立した研究郚門のような、Pathfinderプロゞェクトにあった䜜業の抂念は、JPLではもはや適甚されたせん。



DDJ 宇宙旅行が面倒になるず、倩才は必芁なくなりたす。



GRこれはただただ先です



DDJ しかし、これを珟実に倉えようずするのは、毎幎あなたの仕事です。



GRそうです。 そしお、これを達成したら、この業界が機胜するこずを確認しお、他の高床なタスクを取り䞊げたす。



DDJグレン、今䜕しおるの



GR倚くの構造的、基本的なタスクの1぀に取り組んでいたす。JPLは、攟射線に耐性があり、攟射胜条件が非垞に難しいペヌロッパで生き残るこずができる航空機噚を開発しおいたす。 私たちは新しい技術をテストし、1メガラドのレベルで発生する問題を解決しようずしおいたす。



契玄に基づき、盞圓量の䜜業がJPLの倖郚で実行されたす。 利甚可胜な技術的に最も匷力な機噚を宇宙船に提䟛しようずしおいたす。 最埌の遞択肢は、呚波数200 MHzのPowerPC 750です。



DDJ あなたはマッキントッシュを宇宙に送りたす



GR䟿利ですね。 Pathfinderプロゞェクトで䜿甚されるプロセッサ速床は玄22 MHzでした。 倀を1桁増やしたした。 それは単に驚異的です。 JPLは10幎から12幎前たで垞にテクノロゞヌを䜿甚しおきたした...



DDJ ...耐攟射線バヌゞョンを埅぀間。



GRうん。 特に、私は「ミッション-デヌタシステム」ず正確に呌ばれおいないプロゞェクトに取り組んでいたす。 これは実際には、いく぀かのこずを実斜するための組織間の取り組みです。 JPLでは、いく぀かの倚方向プロゞェクトが最近実装されたした。 たずえば、私たちは、既存のはるかに倧きな自埋性ずは異なる宇宙船の基瀎ずなるようなアヌキテクチャを実珟しようずしおいたす。



これは、゜フトりェア、プログラミング分野の最新の開発に適甚されたす。 JPLは埐々にハヌドりェア圢匏から遠ざかり぀぀あり、゜フトりェア開発により重点を眮いおいるず思いたす。 私たちが取り組んでいるコンピュヌタヌシステムは、小芏暡なロヌカル゚リアネットワヌクのようなものです。 FireWireずI2Cを䜿甚しお、高速のコンピュヌタヌシステムではありたせん。



DDJ I2Cはただ䜿甚䞭ですか



GR圌女は高速ではありたせんが、パワヌは䜎いです。 これはしばしば決定的な芁因です。 倧容量、高速の堎合、1394 FireWire-100 Mbpsがありたす。



DDJ NASAでは、プログラマヌに高䟡なおもちゃが䞍足しおいたせんか



GR垂堎で入手可胜な倧量生産に焊点を圓おお、それを防止しようずしおいたす。



Pathfinderの時代には、「VMEバスを䜿甚しお、各郚分を自分で開発するのではなく、倚くのお金を節玄したす。」ず蚀いたした。



そしお、私たちはただこの原則を固守しおいたす。



DDJ 珟圚の小芏暡チヌムの氎平統合ずシリアルパヌツの䜿甚を考慮しお、Pathfinderプロゞェクトのベストプラクティスを維持するずいう芳点から、珟圚の䜜業に぀いお議論し始めたした。 どのように察凊したすか



GR JPLは、チヌムの構造ず盞互䟝存性を最適化するずいう苊痛なプロセスを克服したす。 倧芏暡な組織にずっお、垂盎的な管理構造から氎平な管理構造に移行するこずは困難な䜜業です。



DDJ これは単なる内郚JPLプロセスですか、それずもNASAの枊ですか



GRこれたでのずころ、これは基本的に内郚プロセスです。 しかし、NASAはこれを芋おいたす。



DDJ 個人的には、経営陣は今あなたを飲み蟌んでいたす。 今、少なくずも時々プログラムを曞く必芁がありたすか



GR最近、いや...私の立堎は、ミッション-デヌタシステムプロゞェクトのチヌプンゞニアず呌ばれおいたす。 技術的な問題に぀いお刀断しおいるようですが、ほずんどは管理䞊の問題です。 できるだけ早く抵抗したす



DDJ 技術に粟通したDDJの読者は皆、「ダヌクサむドに行かないで」



GR誰かが蚈画をたずめる必芁がありたす。 この劣等感は私を暗い偎に匕きずり蟌みたす。



DDJ はい、管理は最埌のフロンティアです。 ゜フトりェアは光沢のあるパッケヌゞで販売されおいたす。 人々の間で仕事を適切に配分する方法、タスクを亀互に行い、時間通りに過ごす方法を決定する...



GRすべお二次的です。 䞻なものは方法論です。 UMLかUMLか 蚀語などの叀兞的なもの、賌入する必芁のあるコンピュヌタヌの皮類... 200 MHz PowerPCは、Cassiniプロセッサの玄200倍匷力です。 効率の問題は背景に消え぀぀ありたす。



DDJ それで、あなたは他のみんなず同じように「叀き良きコヌド」を曞くだけですか



GRそれはいいですね。 確かに、゜フトりェア開発の最前線に近づくこずができたら玠晎らしいず思いたすか 残念ながら、JPLは珟圚このゲヌムから陀倖されおおり、手頃な䟡栌の゜リュヌションに満足する必芁がありたす。



DDJ Linuxはどうですか



GR宇宙飛行ぞの適合性に぀いおは評䟡したせんでした。 しかし、倚くの人がここで䜿甚しおいたす。 各開発者は、One Right Wayに぀いお独自の意芋を持っおいたす。 .



DDJ: JPL?



GR: JPL () . Ada , - - , , , . Pathfinder .



- , - C++ Java
 , — LISP'. , , — .



DDJ: , .



GR: . Pathfinder 128 RAM. , . . , , , .



DDJ: ?



GR: , . — «Space Technology 4» ST4. , , , . .



. , 2003 . , , .



DDJ: ? ?



GR: , , . - , . - , .



: « , ?» , .



NASA , , : ., — 200 . .



NASA , .



DDJ: . ?



GR: , SpaceDev Inc., . , , , , . , , , , , 




DDJ: .



GR: , . ? , , 
 .



DDJ: - , ?



GR: : « , - , - ». , . , . Pathfinder — , .



1999, Dr. Dobb's Journal




翻蚳セルゲむダンシン

: A Conversation with Glenn Reeves




— Edison , .






?




All Articles