LinuxとBSD―Linusに聞く

先日、Linus TorvaldsにLinuxとBSDを比較しての長所と短所について意見を聞いた。LinuxカーネルとBSDの間にどれだけ相互作用があるかについても聞いてみた。

Linusに質問するにあたり、私はまず、数年前にサンディエゴで開かれたUsenixカンファレンスで目にした出来事について話した。そこでのLinusのプレゼンテーションに、BSDユーザの一団がやってきて最前列を陣取った。その一団は、笑ったりLinusを冷やかしたりした挙句、自分たちがかぶっていたツノの付いた帽子を一つ、Linusに渡した。例のBSDファンのシンボルだ。

そのときLinusがとった行動には彼らも驚いただろう。私もびっくりした。Linusはその帽子を受け取ってかぶると、自分のプレゼンテーションの間、最後までずっとそれをかぶったままでいたのだ。LinuxカーネルのリーダーがBSDの象徴を身に着けたというそれだけのことだが、こうしてLinusは不穏な空気になりかけたその場をうまく治めたのだった。

NewsForge: 無知な質問ではありますが、LinuxカーネルとBSDの共通点、相違点、そしてもしあればその二つの相互作用についていくつか質問させてください。

Torvalds: そういう比較はあまり好きではないんですが。いろいろな意味で妥当じゃありませんからね。どちらが”優れている”かは、常に「目的は何か」と「どの基準で見るか」によって違うので。

NF: いまでも、BSDの方がLinuxカーネルより”技術的に正確である”といっている人もいます。BSDはLinuxカーネルより技術的に優れていると思いますか。

Torvalds: Linuxの方がいろいろな意味でずっと幅広いです。より広範なハードウェアサポート(ドライバ的にもアーキテクチャ的にも)から、実運用に至るまで。BSDは、特定の領域に特化する傾向にあります。私自身は、特殊な用途に特化するのはよくないと個人的にはいつも考えてきました。

どちらがより”優れている”か。”私”にとっては、Linuxの方がずっと優れています。なぜなら”私”にとっては、OSとして重要なことは、多様なパターンにどれだけ適切に応じられるか、という点にあるからです。組み込み、サーバ、デスクトップのいずれであろうが、そして地下室で何か新しいことを試そうとしている変わり者用であろうが、です。

でも、それに反対の人もいます。自分たちの仕事を特定領域に限定したがり、開発者なら凝集されたひとつの目標以外は気にしない、というのが好きな人たちです。Linux開発モデルは”寛大過ぎる”と考える人もいます。逆に言えば、そういう人はプロジェクトをXに集中させる方がいいと思っています。Xは、”自分”が気にかける領域ならなんでもいいのです。

どちらの考え方が正しいか。それはもちろん、私の方です。私と違う考えの人は、そもそもおかしいんです(私の考えが変わらない限り。彼らが突如まともになる日がくれば私も考えを変えるでしょう。私は柔軟なんです。白黒つけようというのではありません)。

NF: 5年前はBSDの方が技術的に優れていたのだとしたら、その後、条件は同じになったでしょうか。

Torvalds: 5年前にBSDの方が優れていたとは思いませんし(前述のとおり)、その質問は無意味でしょう。

“Xの方がYにおいては優れている”という領域があるか。もちろんあります。それは当然あるでしょう。ただ、Linuxは誰にとっても”十分によい”ものを目指しているからこそ、Linuxの方が優れている、あるいは(”機能する”というだけでも)大いに優れている領域がたくさんあります。そして、わずか一部の特殊領域に限り、BSDの特定バージョンの方が優れているというわけです。

私が思うに、これは考え方の違いに負うところが大きいでしょう。”十分によい”といいましたが、そこが違うところです。BSDの人(もちろん一般論ですが)には完全主義者が多い。長い時間をかけて何か一つのものを極めようとし、そして自分の完成基準に満たないものをいやがります。OpenBSDがひたすらセキュリティに専念しているのがいい例です。

これに対し、私の好きなことばの一つに”完ぺきは良好の敵”というのがあります。要は、”十分によい”というのは、理想的な完全性なんかより実際はずっと柔軟だということです。世界は白黒割り切れるものではなく、グレーの部分もたくさんあります。実のところ、白黒はっきりさせたいという人はちょっとばかげていると思うことがよくあります。

NF: BSDとLinuxカーネル間の共有はよくあることですか。あるとしたら、それは双方でのことでしょうか。

Torvalds: カーネルレベルではめったにありません。たまにあるのは、主にドライバ関係か、”アイディア”レベルの話です(誤解してほしくないのですが、険悪な関係ではありません。ちゃんと”話”をしています)。ただ、実際のところ、何かを共有して同調合意するのは、単独でプロジェクトを進めるよりたいへんです。

ユーザレベルでは、コミュニケーションの問題もないので非常に多くの共有が行われています。ユーザプロジェクトは、いずれにしても互いから(そしてカーネルからも)かなり独立しています。

NF: 現在、BSDからカーネルに採用したい部分はありますか。

Torvalds: 具体的には何もありませんが、だからといっていやがっているということではありません。BSDの技術的内部仕様はまったく知らないだけです。ですから、私に聞くのが間違いですよ。両方使っている人に質問した方がいいでしょう。

予告:次回は、今回と同じ質問にBSDのリーダーたちがどう答えたかをお伝えしたいと思う。

原文