目次
OSSとは
このシリーズの初稿でも取り上げたようにOSSの取り扱いをややこしくしているのがその構成者や関係者が多いということだろう。
以前にも似たような図をお見せしたが、OSSはプログラムの実態のほかにそれを開発するためのコミュニティ(会計、啓蒙、監視なども含む一般の会社に近い組織)とライセンス条項、そしてその法的根拠としての知的財産に関する各国法が存在する。
この図の中のOSSの2要素である「コミュニティ」と「ライセンス」を以下に示しておく。
OSSのライセンス条項は主に改変権、複製権、頒布権(再頒布権)を規定しており、その主張の根拠は結局各国の著作権法となっている。
しかしその著作権法は「無方式主義」のベルヌ条約をベースにしているとはいえ各国の諸事情により多少の違いがあることも問題をややこしくしている。
更に世界で開発され使用されているOSSのライセンサーとライセンシーが別の国なんていうのはむしろ当たり前のことだろう。
そのような複雑な環境の中で、誕生から20年以上がたちその利用者は増え続け今や重要なあらゆる産業基盤の一つになっているのだ。
その将来を模索するためにも先ずはその歴史を紐解いておこう。
OSSの前身?
正確な記録はつかめてないが、米国では1970年あたりからハッカー(ここでは「天才系プログラマー」)を中心にソフトウエアのソースコードを配布しあったりしていたようだが、まだ組織立った動きにはなってなかった。
日本でこのようなり取りが活発になっていったのはパソコン通信(今は死語か?)であり、これは1980年中ごろあたりからはやり始めインターネットが普及する1990年中ごろまで続いた。
パソコン通信にはいくつかのフォーラムがあり、自分が興味のあるところに入会し仲間と議論したり必要なソフトウエアをダウンロードしたりした頃が懐かしい、等というと年がばれてしまう。
1970年代後半からIBM互換機ビジネスが始まり1981年にはFBIも絡んだIBMスパイ事件があり、オペレーティングシステム(以下、OS)のソースコードが商取引されていくさなか、それに反旗(?)を翻したのがOSS誕生の礎を作った重要な人物がRichard Stallman氏だ。
彼はマサチューセッツ工科大学(MIT)人工知能研究所に所属していたが、ソフトウエアを自由に使うべきだという信念の元1983年GNU(OS開発のためのプロジェクト)を立ち上げた。
この考えがその後のOSSにつながっていくという意味で彼の功績は大きい。 しかもその考えは現在に至るまでぶれることなく一貫している点が、その善悪はともかく個人的には感銘を受ける。
そして1985年、Richard Stallman氏はFSF(Free Software Foudation)を設立し、使う自由、作る自由をさらに推進するため「フリーソフトウエア」を定義した。
その定義をwikipediaから以下に引用する(リンク先はここをクリック)。
- 目的を問わず、プログラムを実行する自由 (第 0 の自由)。
- プログラムがどのように動作しているか研究し、そのプログラムに あなたの必要に応じて修正を加え、採り入れる自由 (第 1 の自由)。 ソースコードが入手可能であることはこの前提条件となります。
- 身近な人を助けられるよう、コピーを再頒布する自由 (第 2 の自由)。
- プログラムを改良し、コミュニティ全体がその恩恵を受けられるよう あなたの改良点を公衆に発表する自由 (第 3 の自由)。 ソースコードが入手可能であることはここでも前提条件となります。
この成果の一つが1989年に打ち出したGNU GPL(General Public Licence)なるライセンスだ。 Copy Right(著作権)をもじってCopy Left(著作物を残す→公開する)を打ち出したこのライセンス形態は、物理法則を使ってないので「発明」とは言えないが、相当画期的なものだった。
つまり、「OSSを改変した場合、それを他者も簡単に利用できるよう、元のコードの改変部は勿論そのコードとリンクした全ての自社保有のコードも公開する」というものだ。 勿論その中に自社の企業秘密や営業機密が入っている場合にはリスクが高くなるのだが、有望なソフトウエアはなるべく他社にも自由に使ってもらうという方針が徹底されている。
当時、GNUプロジェクトはOSやらツールやらで重要なソフトウエアを開発していたが、残念ながらOSの核となるカーネルの開発が遅れまくっていた。
その中に登場したのがフィンランドのLinus Torvalds氏。
1991年にカーネルを”Linux”と命名しGPLライセンスで公開することになった。 それでも当時はまだやわやわなものだったらしいが、フリーソフトウエアにしたことで世界中の優秀なプログラマーが連携して効率的な分散開発をした結果、機能、品質ともに素晴らしいカーネルが出来上がった。
このことが一つの大きなきっかけとなり、GPLライセンスが一気に市民権を得ていったというわけだ。
OSSの誕生
このブログの読者はNetscape NavigatorというWebブラウザをご存知の方も多いだろうが、OSS、オープンソースソフトウエアなる言葉がここから生まれたことをご存知の方はそれほど多くはないのではないだろうか?
1990年前半から「WebブラウザならNetscape」というのが通り相場となっていた。有料だが断然使いやすかったというのが其の理由だ。 しかしMicrosoft WindowsのExploreが次第にシェアを伸ばしていきWindows95で無料のバンドル版ブラウザはど機能差もほとんどなくなった。 Netscape陣営はMicrosoftに負けじと様々な機能を追加していったのが逆に裏目に出てバグは増え、次第に操作も重たくなっていった。
そんな中、Eric Raymond氏は1997年3月に開催された第4回国際リナックス会議の場で講演したのが、かの有名な「伽藍とバザール」だ。
それまでの開発スタイルは、伽藍のような大聖堂を作るときのように(ソフトウエア開発でいうと「ウオーターフォール型」のことをいっているのかもしれない)最初にがっちりと仕様を決めてから作業を分割して各人に割り振り、中央集権的に管理・推進していく方式が主流だった。
それに対してLinuxの開発スタイルは「独立・分散型」、世界中から優秀なプログラマーが情報交換、ソース公開を繰り返しながら作業を進めることにより短期間でその完成度を高めていったという話だ。
これに影響されたNetscape陣営はMozillaプロジェクトを立ち上げ、Linux流のバザール型開発をしたプログラムを「フリー(ただ?)」ではなく「オープン」だということを打ち出すためオープンソースソフトウエア、OSSと呼ぶことにした。
そして翌年の1998年Netscape communicatorのソース公開となったわけだ。 こののちMozilla foundationを設立しブラウザのFirefox や eMailのThunderbird など、数々の賞に輝く無料のオープンソース製品を提供しているのはご存知の通りだ。
一方、最初にOSSという言葉を生み出しOSD(Open Source Definition)(*1)として定義したのがBruce Perens氏だとされており、そのスポークスマン的な相棒がEric Raymond氏だった。
両氏は1998年にOSI(Open Source Initiative)という組織を立ち上げ、オープンソースの定義やOSSの商標登録なども行っている。
一般的にライセンスも含めてこの手の文章は、各国法の違いや自分たちの主張が縮小して解釈されないよう抽象的に描かれているため、原文を「逐条翻訳」したうえで複数人で検討してその解釈をまとめるというのが基本だ(特許と同じ手順だ)
OSIの定義 (Open Source Initiative)
OSIの定義の原文はここ、AKITSUKADA氏の解説もわかりやすい(ここ)が、
以下の解説は八田真行氏による日本語訳(ここ)をベースにしている。
1. 再頒布の自由
「オープンソース」のライセンスは、様々なプログラムを集めたソフトウェア頒布物の 一部として、ソフトウェアを販売あるいは無料で頒布することを制限してはならない。
2. ソースコード
「オープンソース」であるプログラムはソースコードを含んでいなければ ならず 、コンパイル済形式と同様にソースコードでの頒布も許可されていな ければならない。
何らかの事情でソースコードを頒布できない場合には、 妥当な程度の費用で入手できる方 法を用意し公表すること(例えば、インターネッ トからの無料ダウンロード)
3. 派生ソフトウェア
ライセンスは、ソフトウェアの変更等による派 生ソフトウェアを元のソフトウェアと同じライセンスで頒布することを許 可しなければならない。
4. 作者のソースコードの完全性(integrity)
元のソースコードに対して変更を加えた部分を本体とは別に 「パッチファイル」として頒布する場合であってもソースが容易に入手可能なことを保証しなければならないが、変更した「パッチファイル」に元のソフトウェア とは異なる名前やバージョン番号をつけるよう義務付けるのは構わない。
5. 個人やグループに対する差別の禁止
ライセンスは特定の個人やグループを差別してはならない。
6. 利用する分野(fields of endeavor)に対する差別の禁止
ライセンスは営利・非営利を問わず、またある特定の分野でプログラムを使うことを制限してはならない。
7. ライセンスの頒布(distribution)
プログラムを利用する権利に(機密保持や知財権等の)追加的なライセンスを求めてはならない。
8. 特定製品でのみ有効なライセンスの禁止
プログラムに付与された権利は、ある特定製品の一部であるということに依存してはならない。 プログラムをそ の頒布物 から取り出したとしてもプログラムが再頒布される全ての人々が、 元のソフトウェア頒布物において与えられていた権利と同等の権利を有するこ とを保証すること。
9. 他のソフトウェアを制限するライセンスの禁止
ライセンスはそのソフトウェアと共に頒布される他のソフトウェアに制限 を設けてはならない。例えば、同じメディアに同梱するソフトウエアが全てオープンソースソフトウェアであることを要求してはならない。(他のライセンス、例えば商用のバイナリプログラムと同梱することを拒絶してはならない)
10. ライセンスは技術中立的でなければならない
ライセンス中に、特定の技術やインターフェースの様式に強く依存するような 規定があってはならない。
(ライセンス許諾の意思表示のために、シュリンクラップ、クリックラップをはじめCUI環境でもどんなメディアでも手段を問わずコードの再利用を妨げてはならないという意味)
(続く)
——————-付則
(*1)Debianフリーソフトウェアガイドライン(Wikipediaから抜粋)
Bruce Perens氏が定義したOSDはDebianフリーソフトウェアガイドライン (*1)を参考にしたとされているので以下にそのガイドラインを抜粋しておく。
Debianフリーソフトウェアガイドライン (DFSG) は、ソフトウェアライセンスが、Debianの一部として含めることが可能なフリーソフトウェアライセンスであるかどうか判定するためにDebianプロジェクトが使用しているガイドラインの集合である。
- 自由な再頒布が可能であること。
- ソースコードを入手可能であること。
- 改変や派生作品の作成が認められていること。
- 差分が提供される場合はソースコードの同一性を要求してもかまわない (TeXなどのための妥協案)。
- 人や団体を差別しないこと。
- 適用領域による差別 (商用利用の禁止など) をしないこと。
- プログラムの再配布時に追加ライセンスを必要としないこと。
- ライセンスはDebianだけに限られてはならない。基本的に前項の繰り返し。
- ライセンスは同梱される他のソフトウェアの邪魔をしないこと。
- GPL、BSD、Artisticライセンスなどがフリーと考えられるライセンスの例である。
2016年9月4日