This is a Japanese translation of "Interview: Theo de Raadt" (http://kerneltrap.org/node/6550). Copyright (c) 2006 KernelTrap.org (http://kerneltrap.org/) -- Posted by Jeremy on Tuesday, May 2, 2006 - 07:50 -- OpenBSD 創始者 Theo de Raadt が OpenBSD の開発を始めたのは 1995 年 10 月。 KernelTrap が初めて Theo と話をしたのは 2001 年 11 月で、OpenBSD 3.0 が リリースされた頃だった。そのインタビューではプロジェクト初期の歴史について 多く語ることができた。その後も OpenBSD プロジェクトは「自由、安定、安全」な OS を 6 ヶ月ごとにリリースし続けており、昨日 2006 年 5 月 1 日には OpenBSD 3.9 が入手可能になった。 今回の最新インタビューで Theo は過去 5 年間の OpenBSD 開発を振り返る。また OpenBSD 3.9 テーマソング「ブラッブ! (Blob!)」についても語り、ブラッブとは何か、 なぜ OpenBSD はブラッブを使わないのか、また OpenBSD 開発者がどうやって リバースエンジニアリングするのかについても詳細を明らかにする。開発プロセス に関しては、近年および将来の「ミニハッカソン (mini-hackathons)」という、 小規模で目的を絞った開発会合に関して話している。最後に、Theo は OpenBSD プロジェクトの基金問題と、資金要請に対する OpenSSH ユーザの反応について論じる。 -- Jeremy Andrews: KernelTrap のインタビューは 2001 年 11 月の OpenBSD 3.0 リリース直前以来ですね。OpenBSD 3.0 から現行の安定版 3.8 までの大きな進展を まとめていただけますか。 Theo de Raadt: ほぼ 5 年だね、6 ヶ月ごとに 0.1 ずつ増えるんだから。PF パケットフィルタが生まれたのは 2001 年、Sparc64 サポートは 3.1 の頃からだし、 W^X とアドレススペースのランダム化は 3.4 あたり、AMD64 サポートは 3.5 あたりだ。それから BGP/OSPF ルーティングデーモンを書いたし、もっと最近は たくさんの無線ドライバを (Linux よりも先を行って) 追加し、今はさらに RAID 管理ツールや温度その他のセンサ...たくさんありすぎるね。 JA: アクティブな OpenBSD 開発者の人数はどう変化してきましたか。 TdR: 増えたり減ったりだけど、だいたい 80 人あたりで上下しているかな、 ある程度アクティブな人数で言うと。ハッカソンとツリーアンロック (リリース サイクルのうち、ツリーを分離する時期) には爆発的にアクティブになって、 ものすごい人数のように感じる。いろんな事情で開発がゆっくりになるときも あるけど、毎回そこから立ち直ってきたよ。 JA: OpenBSD プロジェクトが 3.0 以来に直面してきた主要な問題をいくつか 挙げてください。 TdR: うーん、内的要素として最大の問題は、これまでずっと、そして将来も たぶん、開発者が足りないってことだな。ベンダは常に新しいデバイスを出して くるのに、こちらがついていけない。でも追い付こうとはしているんだ。 少なくともユーザコミュニティはこの努力に満足してくれているよ。俺たちとしては その時いちばん重要なデバイスに努力を集中しようとしている。 これは大きな外的問題につながってくる。最重要デバイスの仕様が完全に非公開 なことがあるということさ。まったくおかしなことだが、いちばん有名どころの デバイスが仕様書を入手できない一方で、もっと場末のデバイスを作っている ベンダは進んで仕様書を出してくれるんだな。ある分野では、たとえばイーサ ネットや I2C では、仕様書のないデバイスがほとんどない。でも残念なことに、 Marvel や Broadcom といったベンダはイーサネットまで閉じてしまおうとしている。 一部の Linux (最近は FreeBSD も) 開発者は、ほんの数名が仕様を読むだけの ために NDA へ署名することを厭わないが、これこそオープンソース界がカーネル 関連で直面している最大の問題なんだ。 JA: 以前には拒否されていたのに、OpenBSD プロジェクトが説得して仕様書を 公開させることのできたベンダがありますか。 TdR: あるよ、何回か。でも普通は、前の拒否というのが社内の変なところから 出ていただけみたい。あとで成功したのは、社内への別のうまい入り込み方法を 見つけたからなんだ。 JA: どうやってベンダに、公開したほうがいいと納得させるのですか。 TdR: まあ、真実をいろんな角度から伝えるわけだね、相手が理解できる角度から。 重要なのは、提供するべきメッセージが相手に大きく依存するということ。 相手が経営者か、決定権がある人なのか、リスクを冒してもうけるタイプか、 臆病なタイプか。社内の競争で攻撃材料を手に入れたいエンジニアが相手なのか、 それとも広報という無間地獄に落ちてしまって、相手はただ話を止めようと しているだけなのか。以上、それぞれの人たちが聞くべきメッセージは異なる。 もちろん結論としては、こうした別々のメッセージはひとつの同じメッセージを 少しずつ取り出したものでしかない。「仕様書を出してくれれば貴社のデバイスを サポートすることができるので、サポートされているということをもっと多くの 客が知るようになりますよ」ということだ。 問題は、最近の製造業ビジネスの流れとして、エンドユーザを客と考えていない ということがある。チップセットベンダは Dell や IBM や HP といった企業を 顧客とみなしているんだ。エンドユーザはこうした大手 VAR がチップセット ベンダに売る商品だ。だってそうしたユーザはベンダの製品に縛り付けられる ことになるのだから。 こういうことから、中小ベンダのほうがチップの仕様書を出してくれるという 理由がわかる。 JA: 仕様書に関する具体的な成功例を教えていただけますか。 TdR: いちばんの成功は、ほとんどの台湾ベンダが、ほぼ即座に仕様書をくれた ことだ。ちょっと前なんか、まったく突然に仕様書とハードウェア実物をくれる と言ってきたところ (JMicron) もあったほどだよ。 JA: 特に対応の厳しいベンダはどこですか。 TdR: そうだな、TI は無線チップセットに関するメールの返事さえよこさない。 Broadcom も返信が来ないし、そこのチップは Linux の人たちがリバース エンジニアリングしてくれたから対応ドライバが作れるのに、マイクロコードを フリーで再配布できないという問題があるから、Intel と同じような状況になっている。 Intel とは話をすることができるけど、まだマイクロコードを再配布できるように してくれない。求めているのは実に簡単なことなんだが。おそらくこれが アメリカ企業ってもんなんだろうな、自分の態度を頑なに変えないという。 JA: OpenBSD のようなプロジェクトに協力的な、立派な企業はどこですか。 TdR: 小さな企業。 JA: OpenBSD 3.9 が 2006 年 5 月 1 日にリリース予定です。新機能や革新的な 進展をいくつか挙げていただけますか。 TdR: 大きな前進と言えるのは、たくさんの小さな、ほんとに細かい変更点が あることさ。:) このプロジェクトでは、コツコツ少しずつ前進していくことが 真の道であると信じていて、危険な書き直しはしないんだ。これのおかげで 6 ヶ月ごとのリリーススケジュールを守ることができているし、注意深く 開発する方法を開発者に考えさせるものともなっていると思う。 JA: OpenBSD のリリースには毎回テーマソングとタイトル画がありますね。 OpenBSD 3.9 のテーマソングはタイトルが「ブラッブ!」です。バイナリブラッブ とは何か、どうして問題なのかを説明していただけますか。 TdR: ベンダは、俺たちがシステムに組み入れる (そして、できれば文句を言わない) ようにと期待して、二種類のバイナリコードを提供している。 第一の種類はファームウェア。たとえば Intel の無線カードなどで使っている ような、カード上の小さなプロセッサで動作するバイナリだ。OS である以上、 俺たちはこのコードをカードまで持っていく必要がある。OpenBSD にファームウェア を含めるために必要なのは、配布を許可するという、ベンダの宣言だけだ。 まあ、これすらダメだっていうベンダもあるけどね。 第二のバイナリデータがブラッブだ。これは OS とリンクしてホストプロセッサ上 で動作するもので、これにはたくさんの問題がある。まず、そのコードがすべき ことをちゃんとすると信じていいだろうか? 俺はそうは思わない。バグがあったら 直せるか? 否。開発者として拘束されている以上、もしユーザがバグを発見したら 悪く言われるのは俺たちなのだから、デバイスに対してまったくひどいサポートしか しない (ブラッブを使うなら必然的にそうなる) という選択肢があっても俺たちは、 自分たちか誰かがリバースエンジニアリングするまで待つことを選ぶ。 JA: バイナリブラッブがダメだというのに、バイナリファームウェアは問題なく 含めるというのはどういうことですか。ファームウェアバイナリが「すべきことを する」と信頼できるのですか。ファームウェアにバグがあったらどうするのですか。 TdR: 正直に言えば、ファームウェアではなく、正しく設計されたハードウェア ロジックを使うチップのほうが好きだ。それを俺たちのドライバで制御するんだ。 さて、ほとんどのイーサネットチップセットはプロセッサを使わないが、 SCSI チップセットは使うものが多いことに注目しよう。IDE チップセットは 使わなくて、無線チップセットは... 半々ってところか。これは明らかに、 扱うデータフローの複雑さと関係がある。 しかし、そういうデバイスをサポートしたいと思うなら現実的にならなくては。 ファームウェアにバグがある場合のリスクは受け入れなければならないんだ。 (これが何年もずっと Prism の無線チップセットとファームウェアアップデート ツールに振り回されてきた件そのものでは?) そのかわり、法律の風潮こそが真の 問題だ。だからファームウェアイメージの著作権者からを配布の許可を得なくては ならないんだ。配布してしまえば... とりあえず動きはするのに。 もちろん俺たちが Hermes (Lucent/Prism/Symbol のチップアーキテクチャ) の アセンブリ言語プログラマになんかなりたくないってことも覚えておいてよ。 もう、いっぱいいっぱいなんだから。これなんか、ほんの一例さ。みんな、 これ以上やる事を増やさないでくれって。;) JA: ブラッブは特に無線 LAN カードとグラフィクスカードに多いようです。 どうしてでしょう。 TdR: グラフィクスカードがこうなったのは複雑さのせいだ。ただ、グラフィクス カードのブラッブは、デバイスにある大量のバグをごまかすためでもある。 こうしたバグは、今のカードの開発スピードがものすごく早いせいであって、 ソフトウェアでハードウェアのバグを回避するのが頼みの綱なのさ。 無線カードでブラッブを使う理由はわからない。実際、使っているものはほとんど ないんだよ。そう、チップの仕様を公開すればいいだけなんだ。FCC の規制に 関する馬鹿げた話が出回っているけど、それが問題なのだとしたらチップを 設計するときに、ハードウェアでチャンネルを固定すればいいだけさ。でも もちろん台湾では誰もそんなことをしない。だからアメリカのベンダは墓穴を 掘ったってことかな。ああ、確かに俺たちは束縛されているとは感じない。 新しく無線デバイスをサポートできるようになった瞬間に、そのドライバを 出荷することができるんだ。 JA: その無線製品の会社が気にしている FCC 規制について、詳しく説明願います。 TdR: おおまかに言えば、デバイスがブラックボックスでなければならないと いうこと。一般人が特定の周波数範囲外で発信するよう設定できてはならないって ことだ。ベンダはそういうことができるデバイスをもう作ってしまっている。 OS のプロジェクトがユーザのデバイスと協働するフリーのコードを作ったから といって、それがどうして俺たちの罪になるのか、まったくわからん。欠陥のある デバイスを作ったのはベンダなんだから。FCC にそのベンダを捕まえさせれば いいんだ。だいたい、うちのユーザや開発者はほとんど、FCC と関係のない国に 住んでるんだ。 JA: OpenBSD はどうやってバイナリブラッブなしにリリースすることができて いるのですか。 TdR: ほとんどの場合はコードをリバースエンジニアリングしてる。あとは その機能を実装している Linux ソースコードを参照する。一回は、ベンダの コードがちらっと目に入って、それが BSD ライセンスだとわかったことも ある。このコードはネットに転がっているものだったんだけど。 JA: ブラッブ式の無線カードで、OpenBSD によりサポートされていないものは どれですか。 TdR: 最新の Atheros デバイスのうち、ほんのいくつかだけだね。無線関連の 問題は、それよりもむしろ配布権限のないファームウェアのほうさ。もし Intel と Broadcom がファームウェアをリリースに含められるようにしてくれれば ユーザの益になるのに、やっぱりそうしたチップセットベンダは 自分がユーザとは何の関係もないと思っているんだ。 JA: どうしてチップセットベンダはファームウェアの配布に消極的なのでしょう。 配布させないことで何を得るというのでしょうか。 TdR: まったくわからない。だって、Microsoft や IBM その他の VAR には配布を 許しているんだ。どうして俺たちはダメなのか。Linux ベンダもダメなのか。 おっと、でも Linux ベンダ数社は配布してるなあ、かなり厳しい条件のもとで。 JA: どうしてこんなにブラッブが広まってしまったのだと思いますか。 TdR: えっと、実際にはぜんぜん広まっていないと思うよ。いつだってオープンな 会社のほうが多いんだ。ただ現時点では、一番売れてるデバイスがごく少数の、 ガチガチに市場を固めようとしているベンダによって生産されているというだけ。 でも、これだって、すぐに逆転するかもしれない。たとえば (後発のほうである) Realtek のギガビットイーサネットチップはそれほどひどい代物ではないし、 詳細な仕様書がある。台湾の製品は、市場には出遅れているかもしれないけど、 いったん出回れば簡潔で堅牢な良い製品だ。 JA: そういう仕様書のある台湾製品は売れてきていますか。 TdR: Ralink は 2005 年に 1400 万個の無線チップを出荷したと言っている。 これは市場にとても大きな影響力を持つ数字だ。もちろん最近ではそのほとんどが PC に入るわけではない。これも結局は VAR が一般消費者向け製品に入れるものを 決めているということだ。 あと、Realtek が毎年どこよりも多くイーサネットチップを売っているという点も 覚えておかなきゃいけない。それに Realtek のギガビットチップは昔の Realtek ほど悪くない。それなのに Dell, HP, Asus などが引き続き仕様書の ないチップばかり売ろうとすればどうなるか。これは俺たちにとって凶兆という だけでなく、Linux にとっても悪いことだ。 JA: バイナリブラッブ入りの OS を使っている人たちはどうすればいいでしょうか。 つまり、その OS を使いながらブラッブの蔓延に歯止めをかけるためには、 何をすればいいでしょうか。 TdR: そういう人たちに言うことなんか、ない。OS の供給元が彼らのために ブラッブ導入を決めたんだ。Linux コミュニティにだって、ブラッブを入れない ことにしたり、少なくとも積極的には組み込まないディストリビューションが あるんだよ。 とは言え、そうしたシステムのほとんどが、ブラッブを読み込めるように調整 されている。ふつう「これこれの機能をサポートする LKM です」とだけ言って 使わせているんだ。ユーザはソースを要求することなんかないからね。 JA: たとえばどんなドライバを OpenBSD プロジェクトでリバースエンジニアリング しましたか。 TdR: うひゃ、たくさんありすぎるよ。というのは、俺たちの定義ではベンダの 仕様書がない状況ほとんどにリバースエンジニアリングという言葉を使うから。 ドライバを書くにあたって、たとえば NDA のもとで閲覧した仕様書に基づき だれかが Linux 用に書いたドライバなど、第三者の奇妙なコードを読まなきゃ ならない場合も、俺たちとしてはリバースエンジニアリングだと考えている。 なぜかって言うと、そういうコードはふつう完全に壊れきってるんだ! 説明もなくマジックナンバーを使いまくっているから、習得して自分用に ドライバをイチから作るのは、ほんとうに大変なのさ。 JA: OpenBSD 開発者がリバースエンジニアリングした製品の企業から脅された ことはありますか。 TdR: ない。 JA: 開発者たちがリバースエンジニアリングするよう、どうやって意欲を 高めさせているのですか。 TdR: ときどきプロジェクトをだれかに指示することはあるけど、ほとんどの 場合はその前に Jonathan Gray や Reyk Floeter や Damien Bergamini が 「こういうの始めたんだけど」って言うんだ。 JA: OpenBSD におけるグラフィクスカードのサポート状況はどうですか。 イーサネットドライバと同じようにリバースエンジニアリングするのですか。 TdR: うーん、これはうちよりも X 開発者の仕事だね。俺もチップの仕様書を 入手できるように助力しているけど。どんな具合かはよく知らない。それにしても 悲しいのは、X サーバのセキュリティモデルがどんなにひどいものかを概説した Loic Duflot をみんなが無視していることだ。 JA: 毎年 OpenBSD は「ハッカソン」を開いて、世界中からの開発者の旅費まで 出していますが、こうしたイベントのお金をどうやって出しているのですか。 そして何が得られているのですか。 TdR: ホテル代もプロジェクトで CD 売り上げから直接支払っているよ。 二回は DARPA の金が出た。あと一回、NLnet がかなり寄付してくれて助かった。 それから、ある企業は一度、PF に追加されたばかりの機能 (overload キーワード) に対する感謝として大規模な支援をしてくれた。 JA: なぜそれほど重要なイベントと言えるのですか。 TdR: 簡単さ、みんなを一つの部屋に詰め込めば円滑に進むってことは想像できるだろ。 JA: 最近「ミニハッカソン」についても言及しておられますね。 これはどういうものですか、現在すでに計画されているものがありますか。 TdR: 数年前、PF に特化したハッカソンを Vancouver の cansecwest 後に やったんだ。何人か開発者が出てたからね。そのミニハッカソンは Sechelt の近くのキャビンで、森の中、Sunshine coast のほとりで開催された。 フェリーで行かなきゃいけないような場所だよ。たしか 15 人ぐらいいて、 大きなハンティングテントに集まってね。テントは我らがハンター開発者 Bob が Edmonton から持ってきたやつだ。キャビンには電源があるけど、 ネットはなかった! DSL 接続はちょうど 1 キロ弱ほど先の丘の上にあったけど、 そこですでに限界の距離だった。ナタを振るい、イバラの間にファイバーを 転がして二つの建物をつなぎ、こうしてネット環境を得てコミットすることが できたってわけ! シカがファイバーを切らないか心配だったけど、次の日 見てみたら、踏まないように上手に走ってたよ。 この PF ハッカソンは大成功だった。それから何年かして、去年の 11 月、 Venice の OpenCon 前に「ports」のハッカソンを Venician bay の San Servelo 島で開いた。まったくスゴかった、そして非常に生産的だった。 パッケージアップグレード関連で残っていたものが、そこでぜんぶ片付いたんだ。 どういうことができるのか (そして、どういう系列のはうまくいかないのか) が わかったから、来年は 4 回ほどミニハッカソンをする計画でいる。:) JA: 来たるべきミニハッカソンの主眼はどこに置かれるのでしょうか。 TdR: ひとつは新ツール ipsecctl で、もうひとつは OpenSSH になるだろう。 最初に開かれる 6 月のハッカソンではカーネルのマルチパスルーティング対応 完成を目標にするが、ほかにもいくつかルーティングデーモンに進展が 見られるような気がする。 JA: その ipsecctl とは何ですか。何をミニハッカソンに残してあるのですか。 TdR: Hans-Joerg Hoexer と Mathieu Sauve-Frankel が設計制作した、 IPSEC の新しい設定ツールで、少し PF と /etc/pf.conf に合わせたモデル を採用している。もう 3.8 には入っていて、3.9 ではかなり発展したんだが、 やるべきことはたくさん残っている。最終的には IPSEC を、普通の人間でも とても簡単に使えるものにする。 JA: OpenSSH は当初の目的を非常によく果たしているような気がするのですが、 これ以上なにをするつもりなんですか。 TdR: そうだな、OpenSSH は非常に重要だ。だからこれからの大きな変更点は 性能の向上とセキュリティの増加のためのものとなる。俺たちは C 言語の 問題点を見付けるにつれて、コードをきれいにする点で非常に積極的になろう としている。ま、標準的な OpenBSD プロアクティブ オーディットだね。 JA: OpenBSD 3.9 が出てしまったあと、4.0 に関する計画は? TdR: いや、まだ 4.0 サイクルは始まったばかり。面白いプロジェクトが いくつか動き出しているけど、リリースできるかどうかは予断を許さない。 ある程度の ACPI サポート (おそらくバッテリーサポート、少なくとも 割り込み処理の改善は大丈夫) が入るだろうとは信じているが、あとは わかったもんじゃない。:) JA: OpenBSD プロジェクトは最近、資金減少についてメディアで取り上げ られましたね。資金は何に使われているのですか、どこから得ているのですか。 TdR: まず最初に誤解を解いておかなきゃ。DARPA が資金提供してくれたときに 俺たちは 2 年の間、金を受け取った。基本的には 5 人が完全にフルタイム 働くぶんの給料、約 3 万ドルのハードウェア、3 回のハッカソンを支払って くれたんだ。当初、補助金の額が 200 万ドルというのはとてつもなく大きく 感じたけれど、DARPA との間を仲介する大学があんなに取っていってしまった ことは絶対に忘れない。あれにはほんと驚いたよ。 で、旧来どおり、俺たちの資金はユーザの寄付や CD の売り上げから来ている (ほかの商品は実際たいした金にならないんだ)。わかると思うけど、これでは 大金にならない。それでもなんとかやりくりしてきたし、問題になってきたとき には助けを求めて声を上げるだけだ。 JA: 私は毎日欠かさず OpenSSH を使っています。自宅でも、仕事で使っている どのコンピュータでも。こういう人はたくさんいると思うんです。最近の 寄付の呼び掛けに対して、OpenSSH の恩恵を受けている人々や企業の反応は いかがでしたか。 TdR: 大きな反応があった。 - OpenBSD と OpenSSH の連結は問題だ、ゆえに寄付しない、という人たちが いた。こういうワガママな人たちは OpenSSH-p が OpenBSD のやつらによって、 つまり、やる必要のないやつらによって保守されているということを知らない んだな。 - 大まかに言って、雑な線引きをすると、Linux ベンダはきっぱり拒否した。 要請に返事すらよこさなかった。商用 Unix ベンダも資金提供をしぶって 自分の要塞に閉じこもったよ、特に OpenBSD ユーザからの要請には。 - 何百人も寄付をしてくれた! - Smoothwall, Mozilla, GoDaddy が、OpenSSH の大口ユーザとして 大規模な支援をしてくれた。ほかにも数人 (Unix/Linux ベンダではなく、 ユーザ) が自社の会計部門に働きかけてくれた。 わからないのは、なぜ Unix/Linux ベンダ (と Cisco) という、俺たちの 製品を売ってるところが目を合わそうとしないのかってことだ。 もしかして、ひとつのプロジェクトに金を出せば他のプロジェクトも 来るから怖いと思ってるのかも。 支援はまずこういうベンダから来るべきだと考えている。その次が企業内 ユーザで、最後が個人ユーザだ。でも実際の反応はほとんど正反対で、 ドル換算の比率はほぼ 15:1 で小口ユーザのほうが多い。ほんとうに ありがとう、小市民たち! JA: OpenSSH-p つまり OpenBSD 以外の OS で動く移植版 OpenSSH について 言及なさいましたが、この保守にはどのくらいの労力がかかっていますか。 TdR: かなりのものだね、だいたいは 3 人だけで処理しているんだけど。 これから楽になるわけでもない。というのは、これから新たにやろうと しているのは (前述のとおり) コードのかなり積極的な再編だからね。 JA: 非 OpenBSD のプロジェクトから、de Raadt さんは付き合いにくい人だ という評判を得ていますね。どうしてだと思われますか、このことが何か 影響を及ぼしますか。 TdR: 他のプロジェクトにも扱いにくい人物はいるよ。どうして strlcpy が未だに glibc に入ってないのか。それは一人の気難しいやつのせいさ。 俺はとっても付き合いやすい人間なんだけど、バカなやつらにまで優しく している暇はないんだよ。 JA: アンチ Linux な言動でも知られていますが、Linux および Linux コミュニティの何が逆鱗に触れたのでしょうか。 TdR: Linux には何の恨みもないよ、俺は使わないっていうだけさ。 あっちのほうが新しくて優れているとも、かっこいいとも低カロリーだとも 思わない。俺たちが作るものなんてみんなウンコだ、それを持ち運んだり 磨いたり、トグロの巻き方を考えたりしてるだけだ。俺はただ、大勢の Linux のユーザと開発者が押し付けがましいやり方をするのがイヤに なってるんだ。「みんな仲良くやってくことはできないのかい?」 これからも俺を怒らせ続けるんだったら、こっちも見たままの呼び方を していく。 JA: どうして OpenCC や OpenX がないのでしょうか。 TdR: ある程度、OpenX は既に存在していると言える。Matthieu Herrb が OpenBSD の X ツリーで新しいことをいろいろしているからね。 このおかげで俺たちの xterm は何年も前から権限を捨ててるし、 X サーバは権限分離している。 新しい C コンパイラは本気で欲しいと思ってる。ただ、その理由は gcc が、長い目で見ると保守不可能なモデルだと感じていることにある。 gcc の人たちが作ってきたのは最適化に重きを置いたコンパイラだ。 その結果、不完全な彼らの努力は、ときどき不正なコードを生成する コンパイラとして実を結んだ。それが俺たち全員に影響してくるんだ。 それに、動作も非常に遅くなった。新しい C コンパイラ、完全に従順で、 最低限の最適化しかせず、小さくて速く、高品質なコンパイラがあれば 欲しいよ。でもオープンソース界には今に至るまでひとつも存在しない。 ひとつもだ。5 個ほど選択肢を調査してきたのに。 JA: 高品質で完全準拠の C コンパイラ、小さくて速い、これこそ OpenBSD プロジェクトで作られるものだ、という気がします。いつか C コンパイラのためのハッカソンが開かれる可能性はあるでしょうか。 TdR: そのための適材は今のところ見付かっていないと思う。もしかすると いま lint に注いでいる努力によって、ある程度の能力を見出せるかも しれない。この努力によって、たしかに学んだのは、現代的な C を 知っている人間がいかに少ないかということだね。 JA: de Raadt さんは膨大な時間と労力を投資して自由、安定、安全な OS を作ってこられました。なぜそれほど重要なことなのですか。 TdR: コードに関わる作業をするときはいつも、非常に複雑な API を 見てイライラしているよ。それを設計したのは経験不足な人たちか、 俺がかつて経験不足だと思ってた人たちだ。実際には、正しく (訳すと 「シンプルに」) 設計することはソフトウェア開発で最も難しい問題の ひとつだとわかった。Unix のカーネル:ユーザランド API は実に賢い インタフェイスの例で、最初、俺はどうすればシンプルかつパワフルに 設計できるかの研究で夢中になってしまった。特にそれまで使ってきた Amiga と比べた。おっと、間違わないでくれ、Unix にだって細かい欠陥や 間違いはあるさ。少なくとも、どうしようもない特殊例の問題はある。 さて、このことが俺を 20 年以上導いてきて、今の俺がある。グループで 俺はいつも新しい API に口出しして、うまい形にできないかどうか 試しているのさ。 これが技術的な面だ。もうひとつの面は、毎日いっしょに遊べる 素晴らしい仲間を手に入れたということだ。これが重要じゃないわけ ないだろ? JA: OpenBSD プロジェクトを先導する以外にも冒険的な生活を送って らっしゃいますね、ハイキングやバイキングで。こういう生き方に魅力を 感じるのはなぜですか。 TdR: うーん、最近はあまりバイキングしてないな。いつかスクリーンで 目が疲れたり、キーボードで腕が疲れたり、セマンティックな議論で 脳ミソが疲れたりしたら、それが山に出る時ってことだね! -- This is a Japanese translation of "Interview: Theo de Raadt" (http://kerneltrap.org/node/6550). Copyright (c) 2006 KernelTrap.org (http://kerneltrap.org/) -- Japanese translation by TAKAHASHI Tamotsu. * Tue May 9 2006 - Yusuke Shinyama corrected two mistranslations, and gave me a suggestion to improve this translation. Thanks a lot!