gccは第三者検証を通せる.しかし壁がある.

JAXAのH2Bロケットに搭載されたTOPPERS/HRPカーネルでの開発環境構築を基にした,高信頼環境におけるgccの能力と,立ちはだかる壁のお話.
41
もなか @monamour555

さて,昨日の満了した守秘義務ネタ.もう一つFLOSSなエンジニア側に嬉しい(そして虚しい)話を思い出した.連ツイ.

2013-05-07 09:18:06
もなか @monamour555

TOPPERS/HRPの開発は,宇宙開発にコストが掛かり過ぎるから,民生品とかオープンソース品を使うことで改善したい,という意向が底辺にあった.(と,アテクシは聞いている)

2013-05-07 09:19:18
もなか @monamour555

カーネルをFLOSSにするなら,開発環境もFLOSSにすんべ.という話だったようで,gcc やら gdb やらも移植しようよ,という話になった.まあ,GreenHills とか,べらぼうな値段しますからね.

2013-05-07 09:21:06
もなか @monamour555

ただし,JTAGデバッガは,何故か特定某社の製品が指定だった.たぶん,評価ボードを納入した会社が指定したのだろう. 別にデバッガに拘りは無いが,このJTAGデバッガ,JAXAのHR5000プロセッサの64bitアーキテクチャを,普通に考えると活かせないという代物だった.

2013-05-07 09:23:26
もなか @monamour555

上流が思慮深いと下流は楽ができるでも,20年以上ソフト屋をやってきて,楽ができた案件は一度もない.HRPカーネルの開発環境構築も,そうだった.

2013-05-07 09:24:42
もなか @monamour555

MIPSアーキテクチャには様々なABIがある.当時,gcc/binutils は,全てのABIをきちんとサポートしきれていなかった. このなかで,ご指定JTAGデバッガでも使えるABIを検討し,gcc/binutilsをhackする必要が出てきた.

2013-05-07 09:27:50
もなか @monamour555

カーネルのターゲットポートを行った社員1名の話を聞きながら,私がgcc/binutilsにhackを加えた.その辺りのコードは,どこかのバージョンのPizzaFactoryに含まれている.(GPLだから)

2013-05-07 09:29:09
もなか @monamour555

そのうち,「gcc が規格に適合しているかどうかのチェックに協力してほしい」という依頼がきた.え? それって JAXA さんがやるっていう話でしたよね?

2013-05-07 09:31:24
もなか @monamour555

まあ要するに,(少なくとも当時の) JAXA さんは,自ら検証機関とネゴってコンパイラの検証を通せなかったってこと. 忙しかったのか,それだけのスキルがなかったのか,それは知らない. 末端零細のほうが技術力があるというのは,美しい国ニッポンのお約束ごとではある.

2013-05-07 09:38:14
もなか @monamour555

で,gcc は検証に通ったか,というと,結論だけいうと通りました.そのときは,Plum Hall の第三者検証でした. http://t.co/1Su3TF2wR0 評価のための環境を作るのに手間取って,結局これも,gdb周りをhackして解決しました.

2013-05-07 09:42:28
もなか @monamour555

(ところで今思い出したのだけれど,このgcc検証周りって,無償でやっていたのでした.この時点では,gcc/binutilsの保守で回収できるわと思っていたのですが)

2013-05-07 09:44:01
もなか @monamour555

「gcc って,オープンソースだし,高信頼性が求められるところでは使えないよ」みたいなことを,したり顔で言う人がいますが,Plum Hall の検証を一発で通したコンパイラは,代理店さんが取り扱った中では,gcc が初めてだとか. gcc4 になっても事情は同様でしょう.

2013-05-07 09:46:19
もなか @monamour555

まあ,そんなこんなで高信頼性システムに必要なエビデンスはgccにも与えられました

2013-05-07 09:47:10
もなか @monamour555

でも,実際に空に飛んだHRPカーネルは,GreenHillsのコンパイラでビルドされているはずです. 結局,関係者は,踏み出せなかったわけです.関係者は,FLOSSを信じきれなかった. ここにも営業力の問題が内在されていたのかもしれません.

2013-05-07 09:49:33

注【ここでいう「営業力」については,この連ツイの前日の連ツイで触れています.】


もなか @monamour555

低価格でロケットを飛ばす」っていう話に対して「眉唾だ」という人がいます. 私も,ロケットのプロデューサではないので,どこまでコストが下がるものなのかはわかりません. でも,安全第一の官僚的な気持ちと,それを支える営業努力で,無駄なコストが至る所に隠れているだろうとは思います.

2013-05-07 09:56:21
もなか @monamour555

私の守備範囲であるソフトだけで言うならば,宇宙機の開発環境で初期コストを1桁落とすのは,無茶ではないはずです. 運用コストは…どうだろうか…一番大きいのは人件費ですからね.

2013-05-07 09:59:17
もなか @monamour555

というわけで,連ツイ終わり.

2013-05-07 10:00:29

[Q&A]これっていつの話?

八谷和彦 @hachiya

連ツイ、イプシロンかしら?参考に> @ina111 RT @monamour555: 「低価格でロケットを飛ばす」っていう話に対して「眉唾だ」という人がいます.(略)でも,安全第一の官僚的な気持ちと,それを支える営業努力で,無駄なコストが至る所に隠れているだろうとは思います.

2013-05-07 10:01:43
もなか @monamour555

@hachiya 私が関わったのは,割と基礎研究に近いフェーズでした.実際にカーネルが載ったのはHTV3号機を搭載したH2Bです.

2013-05-07 10:04:23

余談

もなか @monamour555

FLOSSで検証っていうときに,保守的な気持ちとは別に難しい点がひとつある. 検証に必要な費用が高価で,結局プロプラ使っても一緒じゃんということになりがちなこと. 複数顧客で割り勘できれば廉価にできるのだけれど,そこは営業力次第.

2013-05-07 10:45:48
もなか @monamour555

あ,そうだ.連ツイのJTAGデバッガ.KMC製ではありません. 当時,指定デバッガがあんまりだったので,一縷の望みをかけてPartner-JETを評価用にお借りしたことがありました. 5kfコア非対応でしたので動かなかった(ある意味当然)のですが,迅速なご対応を頂きました.

2013-05-07 10:57:57
もなか @monamour555

(国内外,いろいろなソースレベルデバッガ製品を触って来ましたが,技術的な話に踏み込んだ時の反応の速さと的確さに関しては,KMCさんはズバ抜けていると思います.)

2013-05-07 11:01:57