Linuxの特徴の一つとして,OSがフリー・ソフトウエアであり,「自由に使えること」であることは第1回で説明した。今回は,LinuxというよりはLinux文化の基盤となっている,オープンソース/フリー・ソフトについて説明する。
オープンソースとは
オープンソースとは,比較的新しい用語である。以前はフリーソフト,あるいはもっと古くはPDS(Public Domain Software)と呼ばれていたもの(詳しくは後述)と基本的な概念にさほどの差はない。基本的に,ソースが公開され,自由に利用が可能なプログラムを指す概念である。
しかし,単にソースコードが公開されるだけで,オープンソースにはならない。現在では Open Source Initiative(以下OSI)が定める表1の定義(ただし要約)に合致するライセンスを適用しているものを,オープンソースと呼ぶのが普通である。
再配布の自由 | 再配布に制限を課してはならない。また,配付にあたってライセンス料を課してはならない |
ソース・コード公開の義務 | オープンソースと呼ばれるソフトウエアには,必ずソース・コードがなければならない。また,ソース・コードにも再配布の自由を保障しなければならない |
派生ソフトウエア作成の自由 | ソフトウエアの変更と派生ソフトウエアの作成と配付に制限を課してはならない |
作者のソース・コードの完全性を保つこと | 独自に作成した部分は分離する |
個人やグループに対する差別の禁止 | 特定の個人やグループに対して利用の制限を課してはならない |
使用する分野に対する差別の禁止 | ある特定の分野(例えば商業的な利用など)でプログラムを使うことを禁止してはならない |
ライセンスの分散 | なんらかの追加的なライセンスに同意することを認めてはならない |
特定製品でのみ有効なライセンスの禁止 | 他のソフトウエア配布物の一部に依存してはならない |
他のソフトウエアに干渉するライセンスの禁止 | 共に配付される他のソフトウエアのライセンスに干渉してはならない |
このOSIの定義に合致するライセンスとしては
・GNU General Public License(GPL)
GNUプロジェクトその他で使われているもっとも有名なライセンス・GNU Lesser General Public License(LGPL)
GNU GPLの条件をやや緩やかにして,商業製品と共に使えるようにしたライセンス・X Window Systemのライセンス
X Window System に使用されている 制限のゆるいライセンス・BSD ライセンス
BSD 系OSに付属する制限の緩いライセンスなどが存在する。このほかにも,有名なソフトのライセンスは,OSIの定義に準拠しており,現在オープンソースと呼ばれているソフトの大半は,OSIの定義に合致すると考えてよいだろう。
GNUとフリー・ソフトウエア
一方「フリー・ソフトウエア」という言葉は,ややあいまい性がある。というのは,OSIが認めているライセンスが複数存在するように,一言でフリー・ソフトウエアと言っても,作者が独自にライセンス条項を定義しているのが実情だからだ。漠然と「無料で使うことができるソフトウエア」と思われている人が多いかと思う。
しかし,無料のソフト=フリー・ソフトウエアではない。現在のオープンソースの基礎を作りあげてきたGNUプロジェクトでは,フリー・ソフトウエアについて,はっきりした見解を述べている。すなわち,フリー・ソフトウエアとは,「自由」なソフトウエアであるということである。そして,ここで言う「自由」は,「紅茶,日本茶,ウーロン茶はご自由にお飲みください」の自由ではなく「言論の自由」の方の自由(Freedom)なのである。
いわゆる商用のソフトウエアでは,そのソフトウエアの利用にあたって制限が伴う。内部構造の解析禁止は言うに及ばず,使用目的の限定,使用個所の限定(1ライセンス/1マシン),譲渡禁止など,「自由」を制限されているのが普通である。例えるなら,政府にとって不都合な言論を禁止する,というようなものだ。しかし,フリー・ソフトウエアでは,利用者が「自由に」ソフトウエアを実行,コピー,配布,研究,変更,そして改良することができる。GNUプロジェクトでは,もう少し明確に
(1)目的を問わず,プログラムを実行する自由
(2)研究し,修正を加える自由
(3)コピーを再配布する自由
(4)あなたの改良点を公衆に発表する自由
を定義して,これらの項目を満たしているものをフリー・ソフトウエアと呼んでいる。そして,GNUプロジェクト産のソフトウエアが,上記を保証するためのライセンスとして,GNU GPLを作成し適用している。
なぜオープンソース/フリー・ソフトウエアなのか
フリーで利用できることで,プログラムの中身を研究したり,更なる改良をする事が容易になるメリットがある。これは,UNIXの伝統とも言える。もともとUNIXは,複数のCPU上で動くOSのため,あるプログラムを別のUNIX環境で使う場合には,ソース・コードをおのおのの環境でコンパイルして利用することがごく普通に行なわれていた。そもそもAT&TオリジナルのUNIXも,ソース・コードを公開した形で配付されていた。このため,多くの研究環境で,UNIXの改良が行なわれたり,UNIX上でソフトウエアを開発することが広く行なわれてきた。インターネット普及時にも,インターネットを支えるソフトウエアのほとんどはUNIX上で開発,利用されてきた。フリーで使える=>多くの人が改良に参加できる=>どんどん普及する,というポジティブなループができていったのである。ソフトウエアの進歩には,フリー・ソフトウエアが大いに貢献したと言える。
そして,Linuxをはじめとする多くのオープンソースの成功がある。インターネットを使い,多くの人が共同で開発する「バザール・モデル」は,今までのフリー・ソフトウエアの開発過程の発展形である。ソースが公開され,自由に開発者が開発できることで,問題が発生しても非常に短い時間で解決が図られている。まさにオープンソース/フリー・ソフトウエアの真価が発揮されたと言えるだろう。