2006/06/21

BSDとLinux(伽藍とバザール)

Q:BSDとLinuxで何が違うか
A:
一番の違いが開発体制と言えます。
BSDを伽藍(がらん)方式(Cathedral)、
Linuxをバザール方式(Bazaar)、
と区別してみましょう。

BSDの伽藍方式とは
「一番だいじなソフト(OS や、Emacs みたいな本当に大規模なツール)は伽藍のように組み立てられなきゃダメで、一人のウィザードか魔術師の小集団が、まったく孤立して慎重に組み立てあげるべきもので、完成するまでベータ版も出さないようでなくちゃダメだと思っていた。」と言われるぐらいの体制のことをいいます。

一方のLinuxのバザール方式とは
「はやめにしょっちゅうリリース、任せられるものはなんでも任して、乱交まがいになんでもオープンにする」という伽藍方式とは正反対の体制です。

プロジェクト管理の面で言うと伽藍方式しかあり得ないのですが、なぜかLinuxは大成功しています。その秘密は参考URLで説明されています。
----



参考URLの「伽藍(がらん)とバザール」を思い出したのでこのような回答をした。

しかし、他にもBSDとLinuxとの違いはある。
「FreeBSDのかたくなさ」と「Linuxの節操のなさ」の違いというコラムも見つかったが、以前256倍シリーズの中で、ハードウェアへのアクセス方法の考え方がBSDとLinuxとで大違いだったことを説明していたところがあった。
BSDでハードウェアにアクセスする場合はデバイスドライバーを使う。一方、Linuxだと直接ポートに信号を送る関数が用意されている。本来はユーザー権限でハードウェアに直接アクセスさせないのがUNIXの流儀だったのだが、「Linuxの節操のなさ」の代表のようなものだ。
この方がBSDとLinuxの技術的な違いとしては大きいと言えるだろう。

しかしLinuxは、技術的な側面よりも、マネージメントの側面の方が高く評価されてしかるべきだろう。私の回答としては「伽藍とバザール」を取り上げざるを得ない。