○オープンソースの考え方 ソースコードが誰でも入手できたらどうでしょうか。そこからバイナリーコードを作るのは簡単だし、それをコピーするのはもっと簡単ですね。それに、異なるコンピュータの間でも、ソースコードがあれば比較的簡単にプログラムを移植できます。 ここでは、ソースコードの扱い方を中心にして、オープンソースの考え方を解説します。 ◎バイナリーコードが自由にコピーできるとしたら
バイナリーコードが無料で配布されたらどうなるか、ちょっと考えてみましょう。バイナリーコードが必要な人は、自由に無料でコピーできるのです。 当然ですが、もう誰もソフトウェアなんか買いませんよね。ソフトウェア開発企業は大損です。ということは、開発にお金がかけられません。せっかく無料で手に入っても、高機能なソフトウェアはなくなってしまうかも知れません。 実はこれ、無料で配布されているオンラインソフトと同じですよね。一般には「フリーソフト」と呼ばれています。 でも、バイナリーコードが自由にコピーできるだけでは、プログラムの開発には、あまり影響がありません。もしも、そのプログラムの不具合を直したい、機能を追加したいと思っても、バイナリーコードだけでは大変です。
◎ソースコードを公開する
では、ソースコードが公開されていたらどうでしょう。そこからバイナリーコードを作ってそれを配っても、費用はほとんどかかりません。必要なら、自由に改良できるでしょう。 ソースコードを公開することは、コンピュータの黎明期から、主に大学の研究室を中心に行われてきました。 研究者の間では、自分の研究成果を非公開にすることはありません。それでは、他の研究者に評価してもらえないからです。コンピュータに関する研究では、その時にソースコードも公開するのが一般的でした。研究室同士で、同じコンピュータを持っているとは限りません。そこで、ソースコードを公開することで、コンピュータの種類が違っていてもプログラムを動かせるようにしたのです。 ソースコードが公開されて自由に使えると、プログラムの改良がある程度解消します。もしも、問題や改良点があるなら、それを自分でプログラムすればいいのです。異なるコンピュータに移植しても良いでしょうし、もっと高機能なプログラムをどんどん開発しても良いでしょう。 ◎ソースコードの公開方法
ソースコードを公開する方法には、いくつかの種類があります。ただ公開するだけでなく、どんな場合に使って良いか、公開する人が条件を定めるのです。このような使用条件もライセンスと呼ばれました。 例えば、アメリカには「パブリックドメイン」という公開方式があります。これは、ソースコードの著作権を放棄したもので、そのプログラムを誰でも自由に使用・配布・改良できました。 しかし、この考え方には欠点がありました。著作権を放棄したために、それが企業の製品に組み込まれ、その改良版を自社の著作物として主張できたのです。これでは、せっかくソースコードを公開していても、無駄になってしまいます。 また、日本の国内法では、そもそも著作権の一部である著作人格権を放棄できないので、パブリックドメインは実現できません。 ◎ソースコードのコピーレフト
リチャード・ストールマンは、コンピュータの世界では知らない人はいないという伝説的な人物です。MIT(マサチューセッツ工科大学)のAIラボという有名なコンピュータ研究所で活躍し、Emacsという高性能なエディタを開発したことで知られています。 このストールマンが、パブリックドメインに変わる新しいソースコードの公開方法「コピーレフト」を考え出しました。 [コピーレフト] プログラムを作ったら、ソースコードを必ず公開する このソースコードの著作権は放棄しない でも、次の条件を守る限り、自由に使用・改良・配布して良い 条件:改良したソースコードに、まったく同じ条件を付けること
コピーレフトでは、パブリックドメインと違って、著作権は放棄しません。 でも、ソースコードを公開します。そのソースコードは、自由に使用・配布・改良ができます。そして、その改良版も、同じように使用・改良配布が自由で「ただし改良したソースコードは、同じ条件を付けること」とするのです。だから、この改良版の改良版も、同じ条件を付けなくてはなりません。これがずーっと続くのです(*2-1)。 「コピーレフト」(CopyLeft)という名前は、著作権のコピーライト(CopyRight)をもじったものです。Right(右)とLeft(左)をかけた駄洒落になっているのです(*2-2)。 ストールマンは、この作戦を本当に実行しました。 これをGNUプロジェクトと名付けて、それを支援する団体「フリーソフトウェア財団」(FSF)を設立しました。また、自分が開発したEmacsに加えて、gcc(GNU
C コンパイラ)を開発し、広くユーザーに公開しました。このgccは、コンパイラの代名詞とも言える存在になっています。さらに、コピーレフトの定義を弁護士に読んでもらい、正式の法律文書にした上で「GNU一般許諾ライセンス」として公開しました。このライセンスは「GPL」と呼ばれています。 そして、この運動が多くの成果を上げたのです。 ◎Linuxとコピーレフト
現在、数多くのプログラムが、GPLの元で公開されています。中でも、Linuxはその最大の成果でしょう。 Linuxは、ソースコードがGPLの元で公開されているUNIX互換のOSです。本来「Linux」は、カーネル(kernel)と呼ばれるOSの核を示す言葉ですが、そのLinuxカーネル上で動作するシステム全体も同じ名前で呼ばれています。1991年、当時ヘルシンキ大学の大学院生だったリーナス・トーバルズによって開発がスタートし、現在でも全世界のボランティア開発者によって改良が続けられています。何より、非常に安定して動作するという特長を持っており、インターネットの基幹業務で高い人気を集めています。 Linuxカーネルは、開発中のソースコードがインターネットで公開されています。誰でも、自由に使用・改良・配布ができます。もしも、不具合や改良点があるなら、それを自分でプログラムすればいいのです。もちろん、改良したソースコードはGPLに基づき公開する必要があります。このフィードバックを集約することで、Linuxの開発は、猛スピードで進んできたのです。 誰でも自由に改良できると聞くと、Linuxはバラバラに開発されていると思われがちです。でも、実際にはそうではありません。インターネットで連絡を取りながら、緩やかな組織を形成して、技術を統合しています。このような組織は、開発コミュニティと呼ばれます。 プログラムの開発で大きな時間をとられるのは、動作チェックとその修正です。これを効率よく片づけるには、できるだけたくさんのコンピュータで動作チェックします。これは企業でも大変なことです。しかし、インターネットを利用して同時に作業を進めれば、この動作チェックはすぐに片づけられます。コストを気にする企業では不可能なほど、膨大なフィードバックが得られるのです。 また、動作チェックをして不具合を見つけた本人が、公開されているソースコードを調べて、その不具合を自分で修正してくれたら、作業はもっと早くなります。 Linuxは、ソースコードの公開とインターネットを上手に組み合わせることで、驚くようなスピードで開発が進み、高い安定性を得たのです。 ◎オープンソースというコンセプト
Linuxの成功を受けて、ソースコードを公開するというやり方が注目されました。
特に、エリック・レイモンドの論文「伽藍とバザール」で、Linuxの開発手法と効果が詳しく解説されました(*2-3)。
『ソースコードを公開して、プログラムを自由に使用・修正・配布できるようにする』 この考え方につけられた名前が、オープンソースです。そのためコピーレフトだけでなく、パブリックドメインやBSDライセンスも含まれていることになります。 「ソースコード」の意味がわかれば、今度は理解できますよね。でも、コピーレフトとは、どう違うんでしょう。なぜ「オープンソース」なんて呼ぶんでしょう。 ソースコードを公開するソフトウェアのライセンスは、GPLだけではありません。この他にも、色々なソフトウェアがソースコードと共に独自のライセンスで公開されてきました。 そこで「オープンソース」という呼び名が、オープンソース・ソフトウェア・イニシアティブ(OSI)によって提唱されました。OSIは、前述の「伽藍とバザール」を書いたエリック・レイモンドが中心になって設立されたオープンソースの推進団体です。OSIは、これまでの色々なソースコード公開ライセンスに統一的な呼び名を付け、その考え方を明確に定義したのです。そして、ビジネスでのオープンソースソフトウェアの普及を目指しました(*2-4)。 オープンソースであるプログラムの配布条件は、いくつかのの基準を満たしていなければなりません。これを簡単に説明すると次のようになります。 ・ソースコードを公開する ・自由に再配布できる ・ソースコードは修正して配布してもいい ・ソースコードの出所を明示する ・個人や集団によって差別しない ・使用する分野によって差別しない ・他の契約との組み合わせで、条件を変えない ・特定製品でのみ有効なライセンスの禁止 ・ライセンスは、ほかのソフトウェアのライセンスに干渉しない
GPLと比べて、条件がずいぶんややこしくなりましたが、これはGPLの条件を緩くしたものなのです。オープンソースの条件では、改良版も同じ条件で配布する必要がありません。元になるソースコードのライセンスの範囲内で、独自に決められるのです。例えば、オープンソースなライセンスの一つである「BSDライセンス」では、改良したソースコードを再配布する必要がありません(*2-5)。 オープンソースの定義では独自のライセンスを定義している訳ではありません。代わりに、GPLなどのライセンスが、この条件に合っているかを判断して、オープンソースの認定マークを発行しています。 Linuxの成功が注目されると共に、オープンソースの考え方も広がりました。また、その品質の高さから、他のオープンソースソフトウェアも普及していきました。現在では、多くの企業がオープンソースソフトウェアを開発したり、利用しています。 オフィスソフトのOpenOffice.orgとブラウザのMozillaは、このようなオープンソースソフトウェアです。 これまで、オープンソースソフトウェアは、一般ユーザーが意識して使うことはありませんでした。Linuxも、いわば縁の下の力持ちとして普及してきたのです。 それが、OpenOffice.orgとMozillaの登場で大きく変わろうとしています。Linuxを配布している人たちも、一般のユーザーが使えるLinuxに力を注ぎ始めています。 |