改良もカーネルへ統合されなければ保守コストを生む

 答えを明かせば,“中央線”とは組み込み向けの機能や改良を,Linuxのカーネルに正式な機能として統合されるようにすることの難しさを表したものだ。Linuxはもともとデスクトップやサーバー向けに開発されており,組み込みへの適用は比較的最近始まっている。そのため「カーネルのメインストリームを山手線とすると,組み込みは中央線。山手線は常に都心を回るが,中央線は毎回高尾から出発しなければならない」(上田氏)。

 正式にカーネルに取り込まれなければ,カーネルのバージョンが上がるごとに機能を組み込み直さなければならない。テストもやり直しだ。あるいは,その機能を実現するために使用していた関数の仕様が変更されたりすることもある。

 難しいのは,単に優れた機能を実装するだけでは不十分,という点だ。Linuxカーネルに対しては,日々膨大な改善提案やコードが寄せられる。その中でカーネルに正式に統合されるためには,Linus Torvalds氏をはじめとするカーネルのメンテナ(管理責任者)に,その機能がなぜ必要なのか,一部のユーザーだけではなく,大多数のユーザーにとってなぜ必要なのかを理解させねばならない。日本人にとっては英語のハードルも高い。Emblix会長の中島氏は「組み込みLinuxの課題は人材不足。特にオープンソース・コミュニティと付き合えるような人材は極端に少ない」と指摘する。

 多くのカーネル技術者がアドバイスするのは「機能を開発して大量のコードを送りつけてもまず採用されない。アイデア段階から議論して,できるだけLinuxカーネル本体の変更が小さくなるような形で,なるべく汎用的なコードを作成する必要がある」という点だ。カーネル開発者との信頼関係を築くためには,カーネルのバグを修正して技術力を示したり,海外のカーネル開発者会議に出席してフェイス・トゥ・フェイスで議論したり,がきわめて有効だ。これらは製品の開発や改良ではないが,オープンソースのメリットを最大限に引き出すための“投資”と言える。

「ポトラッチ---贈与による闘争」は比喩ではない

 この話を聞いて思い出したのが,米SteelEyeという,クラスタリング・ソフトウエアを開発する企業のCTO(最高技術責任者)に聞いた話だ。CTOのJames Bottomley氏はLinuxカーネルのSCSIドライバのメンテナである。Bottomly氏は,労働時間の約25%程度をLinuxカーネルのメンテナとしての仕事に費やしているという。また,同社が開発した,データ複製機能をLinuxに寄贈し,それはLinuxに組みこまれている。

 「それだけの労働時間を費やし,また商品にもなりそうな機能を寄贈して,それに見合うビジネス上のメリットがあるのか」。記者の問いに,Bottomley氏はにやりと笑ってこう言った。「複製機能が正式にLinuxカーネルの一部となったことで,我々のバックアップ・ソフトウエアはLinuxカーネルに一切変更を加えずにリアルタイムにバックアップできる。競合製品はカーネルにパッチを当てて変更せねばならず,Linuxディストリビューション・ベンダーの保証がなくなる。我々は小さな企業だが,大企業を相手に有利な戦いができる」。

 オープンソース・ソフトウエアという言葉の発案者の一人で,論文「伽藍とバザール」で有名なEric Raymond氏が,オープンソース・ソフトウエアをポトラッチに例えている(「ノウアスフィアの開墾」山形浩生氏による日本語訳)。ポトラッチとはアメリカ北西太平洋岸のネイティブ・アメリカンが行っていた“贈与による戦闘”だ。部族同士は互いに贈り物を与えあい,多く贈与した部族は,その心理的な圧力で優位に立つことができる。貢献により勢力を勝ち取る,ポトラッチは単なる比喩ではなく,今まさに行われている戦いなのかもしれない。