Skip to content

MITのキャンパスに来たのでGPLとBSDとMITライセンスについて簡単に説明してみた

enchant.jsの海外イベント二発目は、なんと東海岸のメーン州ボストンで行うことになった。

そちらのレポートはおっつけ上がってくると思うのでここでは紹介しないとして、ボストンといえば、Facebookが生まれたビル・ゲイツの母校、ハーバード大学や、泣く子も黙るマサチューセッツ工科大学(MIT)があることで有名だ。

この大学は数々の功績を残し、創立150周年を迎えた現在も、功績を残し続けているのだ。

この歴史的キャンパスを訪れたことに興奮する僕だったが、同行した文系女子のHidemyはちょっと退屈そうだ。

しかしMITは、実はenchant.jsにも関係がないとは言えないのだ。

「なあ、GNU(ぐにゅ)って知ってるかな?」

「いえ・・・」

「まあ文系なら知らないのも無理はないか。GNUは、オープンソースソフトウエアを”自由なソフト”として定義した最初の広範囲な活動として知られているんだ。LinuxやMacOS、それにPlayStationもGNUの恩恵を受けている」

「凄いんですね」

「そのGNUも、ここMITでスタートしたのさ。そしてenchant.jsの配布形態であるGPLは、GNUによって決められたオープンソースソフトウエアライセンスなんだ」

「えっ・・・じゃあMITライセンスというのは・・・」

「そうか。GNUもMITでスタートしたんだけど、MITライセンスもMITが提唱したライセンスだもんね。そりゃ気づかなかった」

enchant.jsはGPL(GNU Public Licence)とMITライセンスのデュアルライセンスになっている。
奇しくも同じ場所でうまれた違うライセンスの好きな方をどちらか選択できるようになっているのだ。

「GNUは、リチャード・ストールマンによって1982年、ここMITで提唱された”自由なソフトウエア”を実現するための理念だ。当時、ソフトウエアの世界は商業化されたOSやコンパイラで溢れていた。あらゆるものに著作権が主張され、ソースコードは隠され、バグは放置された。ソフトウェアは本来「自由(Free)」であるべきだ、というストールマンの主張は幅広い層の共感を産み、もともと商業化されてソースが見えなくなったUNIXシステムを全てフリーソフトで置き換えるために必要なものを自作するという、GNUプロジェクトが始まったんだ」


GNUプロジェクトで開発されたソフトウェアのうち有名なものは、例えばCコンパイラだ。gcc(GNU C Compiler)は世界中の開発者から利用され、今ではなくてはならないものになっている。

「たとえばPlayStationのコンパイラはgccだし、iOSやMac OSのコンパイラもgccだ。当然、GNUの多くのソフトウェアがそのまま動作しているLinuxのコンパイラもgccだし、今、gccを使っていないのはMicrosoftくらいじゃないかな」

「それ全部無料なんですか?」

「GNUが提唱するFreeを単に無料と解釈するのは適切ではないよ。これは”自由”を意味するんだ。だからGNUのソフトウェアを有償配布することはライセンス的に何の問題も無い。ただし、ソフトに改造を加えた場合、誰もがいつでも改造したソースコードと、その前のオリジナルのソースコードを手に入れる方法が用意されていなければならないんだ。ソースコードをいつでも手に入れられることによって、ソフトウェアの”自由”が保証されるという考え方だ」


「著作権はないんですね」


「そうじゃないんだ。著作権は、英語ではコピーライト(copyright/まさにコピーを作る権利)と呼ばれるけど、GNUのソフトウェアは、コピーレフト(copyleft)と言って、著作権を保持したまま、二次的著作物も含めて、すべての者が著作物を利用・再配布・改変できなければならないということなんだ」


「それって商業用のソフトであっても、ソースコードを公開しないといけないということなんですか?」


「もし、GPLに従うならね」


「ライバルにソースコードを盗まれちゃうじゃないですか」


「それも含めて、コピーレフトなんだよ。もしライバルがソースコードを盗んだとしても、彼らもまたGPLに従わなければならない。コピーレフトは守られているからね。つまり彼らは改良した新しいバージョンのソースコードをやはり公開する必要があるんだ」


「ややこしいですね。でもソースコードが公開されているということは、商品を買わなくても手元でコンパイルすればいいということになりませんか?」


「なるだろうね。だから事実上、無料のものが多いんだよ」


実際、オープンソースで商売をしようとするのはそう簡単ではないが、GNUソフトウェアで直接的な利益を上げているのはRedhatなどがある。


「ではMITライセンスとはなんですか?」


「うん。今説明したようにGNUにおけるフリーソフトとは、自由であるだけに制約もあるんだ。つまりGNUのソースコードをベースにしたソフトウェアはそのままライバルに使われてしまう可能性があったりするということだよ。企業はそれを嫌って、GPL汚染なんていう言葉を作り出した。GPLに触れるソースを少しでも使うと、それを利用する環境まるごとGPLに基づいてソースコードを公開しなければならなくなるからね」


「汚染て・・・あんまりいいイメージじゃないですね」


「まあね。まあこれは主義主張の問題だから仕方が無い部分もあると僕は思う。そこで、MITライセンスやBSDライセンスの出番となる」


「BSDライセンスというのもあるんですか」


「BSDライセンスは、その名の通り、カリフォルニア大学バークレイ校(UCB)に由来する。実はバークレイでも独自のフリーソフトとしてのUNIXを作っていたんだ。もともとはAT&Tの著作物だったUNIXをビル・ジョイという学生が改良したんだけど、TCP/IPソケットなど今のインターネットの基礎になる重要な部分がここで開発されたんだ。その後、AT&Tのライセンスにひっかかりそうなところを再度フリーな実装で置き換えるというやりかたで、BSD(バークレイ・ソフトウェア・ディストリビューション) というUNIXが生まれるんだけど、その後AT&Tと泥沼の訴訟合戦になって、いろいろ苦労する」


「ダメじゃないですか」


「けど、4.4 BSD-Liteという、AT&Tのライセンスに抵触しないという公式な確約がとれたUNIXが完成したんだ。これをもとにして、FreeBSDが開発され、Linuxと同じように普及しはじめたというわけ」


「そうなんですか。私が知らないだけかもしれませんが、Linuxに比べるとあんまり聞きませんよね」


「それはそうだろうね。ところが君が今、その鞄の中に入れているMacのOSも、実はもともとFreeBSDなんだ。正確には、FreeBSDとMachをもとにしたDarwinというOSをベースに、NEXTSTEPが作られ、そしてMacOSXやiOSへと発展して行ったというわけ」


「な、なるほど。そうだったんですか」


「今の世の中は、フリーソフトがなければ成り立っていないんだよ。過去にライセンスで苦労した人たちが頑張ってそれをフリーなものに置き換えて行って、それがあったからこそ、MacOSXが生まれ、iOSが生まれて行ったんだ。これってちょっとすごいことだよね」


「昔の人は偉かった、と」


「このBSDの配布形態であるBSDライセンスが、GPLと並んで現在最も良く知られているフリーソフトウェアのライセンスのひとつとなっているんだ」


「どんな違いがあるんですか?」


「一番重要なのは、コピーレフトがないことかな。BSDライセンスのソースコードは再利用してもソースを公開する必要が無い」


「そっちのほうがいいじゃないですか」


「まあ使うだけの側からみたらね。だけど開発者コミュニティとして考えたら、BSDライセンスを選択することで競争相手に成果を横取りされて、しかもその成果を公開してもらえないというリスクが生まれるのは間違いないんだ。そういうリスクを許容するか、そもそも競争相手などいない、と断じてしまうのがBSDライセンスを使う時の特徴だろうね」


「ある意味で性善説なわけですね」


「その通り」


「では、BSDライセンスとMITライセンスの違いは?」


「本題に戻って来たね。実は、もともとBSDライセンスはソースコード公開の義務はなかったんだけど、そのかわり宣伝条項があったんだ」


「宣伝条項?」


「つまり、”このプログラムは誰々さんが書いたソースコードを利用しています”ってどこかに書かなければならなった。これが宣伝条項」


「MITライセンスにはないんですか?」


「いや、実は後になってBSDライセンスから宣伝条項が削除されてしまったんだ。これを修正BSDライセンス、と呼ぶ。反対にMITライセンスには宣伝条項が残っている。だから一般的なオープンソースソフトウェアは、MITライセンスを採用することが多くなったんだよね」


「どうしてBSDライセンスは修正されてしまったんでしょうか」
「それはGPLとの兼ね合いだね。ともにUNIXを自由にしようという思想で始まったGNUとBSDだから、スタート地点は違っても、ゴール地点は近いところに会った。そこでBSDライセンスのソフトウェアとGPLのソフトウェアを一緒に配る、なんていうケースも出て来た。ところが、BSDライセンスの宣伝条項は、GPLにはないので一緒に配ることができなくなった。そこでBSDライセンスのほうを修正して、宣伝条項を削除したんだ」


「歩み寄ったわけですね」


「その通り。こうして、宣伝条項付きのオープンソースソフトウェアライセンスは、MITライセンスに残った、というわけ。世の中にはかなりの数のBSDライセンスの派生系が存在しているけど、代表的なのはMITライセンスらしいよ」


(加筆)
と、説明したんだけどコメント欄で「MITライセンスにも宣伝条項はない」と指摘していただいた。間抜けすぎる。恥ずかしい。

この「宣伝条項」が意味するところは、広告などに使う場合の宣伝条項であって、宣伝条項そのものはMITライセンスには引き継がれていない。


修正されたBSDライセンスはMITライセンスとほぼ同等になるので、どちらも著作権表示そのものは消してはいけないようだ。


誤解を招くような会話があったので、続く会話は削除させていただいた。
詳しくはコメント欄を参照のこと。




enchant.jsではなぜGPLとBSDライセンスのデュアルライセンスではなく、GPLとMITのデュアルライセンスなのか、うん、もうそれは開発者の趣味、と解釈してください。


まあライセンスをどうするかはかなり議論があって、他のオープンソースのライセンス形態とかをみながら決めたっていうのが本音。



あと、いちいち「修正BSDライセンス」と書くのが面倒だった、というのもある。
ということでお騒がせしました


たまーに「enchant.jsはなぜデュアルライセンスなのか」と聞かれることもあったので、ついでに記事のネタにして見た。
他にもMITはデジタルガレージの社長である伊藤穣一さんが所長に就任したメディアラボという面白い研究所があったり、いろいろ見所は沢山あるんだけど、今回は事前準備をほとんどしないで来てしまったのでこのへんで。




enchant.jsエヴァンジャライズ・ツアー・ボストン編はもうしばらくしたらアップします。
乞うご期待
このエントリーをはてなブックマークに追加
はてなブックマーク - MITのキャンパスに来たのでGPLとBSDとMITライセンスについて簡単に説明してみた
Post to Google Buzz
Share on GREE

No related posts.

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*