Q: Linuxカーネルはだれがどのように開発しているのですか

A: モジュールごとに責任者がいて,大勢のプログラマがその補佐をしています。

 Linuxというのは「Linus(Linus Torvalds氏)のUNIX」という意味です。ですから,何も知らない人は「作者であるTorvalds氏が1人で開発している」と思っていることが少なくありません。確かに,最初にメーリング・リストを通じて公開されたLinux(Ver0.01)は,Torvalds氏が1人で作り上げたものですが,現在ではそうではありません。

 また,オープンソース・ソフトでは,「バザール方式」という開発手法が採用されている場合があります。バザール方式とは大雑把にいえば,「各自勝手に開発して,バザール(市場)のように公開し,良いものが残る」という方法で,栄枯盛衰の激しいオープンソースはこのようにして良品が取捨選択されると説明されています。

 確かにLinux上のアプリケーションはバザール方式で開発されることも少なくありません(ただし,すべてがそうではありません)が,Linuxカーネルはバザール方式では開発されていません。

 今のLinuxはおおまかにいえば,「人月の神話」に出てくる「外科医モデル」です。外科医モデルというのは,「執刀医が中心に作業をし,他の大勢はその補佐をする」という開発方法です。

 Linuxの場合は,モジュール単位で何人もの「執刀医」がいます。そのため,同時並行的に複数の個所を手術するという感じになります。ただし,「患者」は1人(Linux)ですから,「執刀医」同士の調整が必要になります。また,「麻酔医」のように直接執刀はしなくても,共通の作業を行う人もいます。Torvalds氏はこれらを統括する立場になります。

 今や巨大ソフトウエアとなってしまったLinuxは,ファイル数でも4万を超えます。この規模になると,とても1人で開発したり,保守したりすることはできません(ちなみに,Torvalds氏が1人で開発したVer0.01のコア・プログラムは1万行程度でした)。また,かつては個人的な関係でパッチ(修正プログラム)を送ったり,適用したりして開発が進んでいました。それが今では,企業として,Linuxカーネルの開発に参加する度合いが高くなっています。

 Linuxカーネルの現在の開発体制は,「モジュールごとに担当者がいて,その管理下で多くのプログラマが開発している」となります。開発体制は,Linuxの進化とともにいろいろ変わってきましたが,おおよそVer 2.2あたりから現在の体制が確立されました。

 外部からのコードは,整合性や著作権上の問題を防ぐため,何人かのレビューを経てから取り込む体制のようです。これはLinuxカーネルの安定性を向上させたり,著作権上の問題を未然に防ぐのには効果的な反面,迅速に取り込めないという事態を招いています。

 最近のLinuxは,Linuxの企業利用を推進するオープン・ソース・デベロップメント・ラボ(Open Source Development Labs,以下OSDL)を通じて企業からの開発参加者が増えていたり,OSDLにTorvalds氏がいることから,OSDLが主導権を得て開発しているかのように見えることもありますが,そうではありません。また,かつていわれていたように「Torvalds氏の独裁」でもありません。数多くのプログラマからの協力を得た各モジュールの管理者をTorvalds氏が統括するという方法で,Linuxカーネルは開発されています。