オープンソース
オープンソース(英: open source)は、コンピュータプログラムの著作権の一部を放棄し、ソースコードの自由な利用および頒布を万人に許可するソフトウェア開発モデル。この開発モデルでは、コンピュータで実行できるが人間が容易に理解・変更できないオブジェクトコードだけでなく、ソースコードも含めて自由な再頒布を許可するライセンスのもとで公開する。
オープンソースを推進するために設立されたオープンソース・イニシアティブは、ソフトウェアがオープンソースであるための要件を定めた「オープンソースの定義」を策定した。
歴史[編集]
「オープンソース」という用語が作られる前年、1997年当時、「自由ソフトウェア」というものに対する経営者や投資家の印象は必ずしも良いものではなかった。1つには、英語では「フリー」という言葉に自由と無料という二つの意味があり、英語圏では「自由なソフトウェア」を意味する「フリーソフトウェア」という言葉が多くの場合に使われていた「無償のソフトウェア」という意味と紛らわしく、無償という考え方は営利目的主体のビジネスには馴染まなかったことがある。また1つには、自由ソフトウェア運動を進める中心的な存在であるフリーソフトウェア財団がフリー(自由)ではないソフトウェア(プロプライエタリソフトウェア)に対して攻撃的であったことがある。さらに1つには、フリーソフトウェア財団の「自由ソフトウェア」が掲げていた「コンピュータのプログラマとユーザは、何の制約も受けずにソフトウェア(のソースコード)を他人と共有できるべきなのである」という主張が共産主義的だとされた。そのような背景から、「自由ソフトウェア」は営利目的の企業としては関わりたくない対象であった。
1998年2月3日、パロアルトにおいて、マイクロソフトのInternet Explorerとの競争でシェアが低下したネットスケープコミュニケーションズのブラウザNetscape Navigatorの建て直しの戦略会議が開かれた。会議では製品の機能と品質の向上とシェア回復のために、技術者の参加を募集する方法、誰でも開発および供給に参加できる理念について議論していた。そこでソースコードの公開は有意義であるが、自由ソフトウェア運動の急進的な思想は非現実的であり、その極端な思想がビジネスの世界からは拒否されていると考えた人々は、「free software」に代わる用語と理念を検討した。そこで「オープンソース」という用語をクリスティン・ピーターソン(英語版)が提案した。また、「オープンソース」では敢えて自由という点を強調はせず、むしろ「ソースコードを公開するとどういうメリットがあるか」を関心の中心とした。
「オープンソース」は自由ソフトウェア運動をしているラリー・オーガスティン(英語版)、ジョン・ホール、サム・オックマン、マイケル・ティーマン、エリック・レイモンドなどの会議の参加者に受け入れられた。翌週、エリック・レイモンドたちは用語の展開を働きはじめた。リーナス・トーバルズは翌日、全ての重要な承認を実施した。フィル・ヒューズはLinux Journalへの投稿を提案した。自由ソフトウェア運動の先駆者であるリチャード・ストールマンはこの用語を受け入れることを考えたが、後に考えを改めている。
1998年4月7日、ティム・オライリーが開催した多くの自由ソフトウェアとオープンソースのプロジェクトリーダーが参加するフリーウェアサミット(後にオープンソースサミットに名称を変更)で大きく躍進を遂げた。会議には、リーナス・トーバルズ、ラリー・ウォール、ブライアン・ベエレンドルフ(英語版)、エリック・オールマン、グイド・ヴァンロッサム、マイケル・ティーマン、エリック・レイモンド、ポール・ヴィクシー、そしてネットスケープコミュニケーションズのジェイミー・ザウィンスキー(英語版)が参加した。その会議では名称について混乱を引き起こし、マイケル・ティーマンは新しく「sourceware」を主張し、エリック・レイモンドは「open source」を主張した。集まった開発者たちは投票を行い、同日午後に勝者である「open source」が記者会見で公表された。5日後の4月12日、エリック・レイモンドは自由ソフトウェアコミュニティへ新しい用語の「open source」の受け入れの発表をした。その後すぐ、同月末にオープンソース・イニシアティブが設立された。
1999年6月、アメリカでオープンソース・イニシアティブが「Open Source」の商標登録を求めたが、「Open Source」は一般的な用語であり特定団体が権利を持つ商標にはならないと判断されている。これについて、オープンソース・イニシアティブは「Open Source」が一般的な用語として周知されたことを歓迎する立場を取っている。
2002年3月、日本ではオープンソースグループ・ジャパンが「オープンソース/Open Source」を商標登録(第4553488号)している。日本での用語の利用に際しては特に許諾や制限は求められないが、オープンソースの定義と同等の扱いで利用されることが望まれている。
オープンソースの定義[編集]
オープンソース・イニシアティブ(OSI)はオープンソース・ソフトウェア(英: open-source software)の要件として、「オープンソースの定義」を掲げている。オープンソースの定義は、ソフトウェアのソースコードへのアクセスが開かれている(ソースコードが公開されている)ことを示すのではなく、オープンソース・ソフトウェアの配布条件として完全に従うべき事項を示している。オープンソースの定義では、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないことが求められている。
オープンソース・イニシアティブは、「Open Source」という用語の利用は、オープンソースの定義に準拠したものにおいて使用されることを求めている。2007年にはSugarCRMが自社のことを「Commercial Open Source」と表現して、オープンソースの定義に準拠していないソフトウェアライセンスをソフトウェアに課していたことを非難した。
オープンソース・ソフトウェア[編集]
オープンソース・ソフトウェア(英: open-source software)とは、オープンソース・イニシアティブの掲げるオープンソースの定義に準拠したソフトウェアである。
オープンソース・イニシアティブはオープンソースライセンスというライセンスカテゴリを管理しており、そのオープンソースの定義に準拠したライセンスのみをオープンソースライセンスとして承認している。オープンソース・ソフトウェアはオープンソースライセンスが課せられたソフトウェアであると言い換えることが出来る。オープンソースライセンスはライセンスの氾濫を防ぐために虚栄心による独自ライセンスや複製ライセンスを承認していないため、オープンソースの定義に準拠しているがオープンソースライセンスと承認されていないライセンス、およびそのライセンスが課せられたオープンソース・ソフトウェアは存在している。基準はオープンソースの定義であり、その定義に準拠したソフトウェアはオープンソース・ソフトウェアである。
オープンソース・ハードウェア[編集]
オープンソースの概念はソフトウェアにとどまらず、集積回路やプリント基板、CADデータなどの設計情報を公開し共有するものはオープンソース・ハードウェアと呼ばれる。
その種類は多肢にわたり、ワンボードマイコン (Arduino)、CPU (OpenRISC、OpenSPARC)、3Dプリンター (RepRap、OpenSLS)、人型ロボット (iCub)、電気自動車 (Open Motors)などがある。
ライセンスはソフトウェア用のものやクリエイティブ・コモンズ・ライセンスも使用されるが、ハードウェア用としてはTAPR Open Hardware LicenseやCERN Open Hardware Licenceがある。
オープンソースライセンス[編集]
オープンソースライセンスは、一定の条件の下でソフトウェアの使用、複製、改変、(複製物または二次的著作物の)再頒布を認めている。次の2つの条件はほぼ共通している。
- 無保証であること
- オープンソースの性質上、ソフトウェアやその二次的著作物は元の著作者でも制御しきれない形で流通し、元の著作者がそこから直接に利益を得ることは難しい。したがって、ソフトウェアは「有用であるとは思うが無保証である」と謳っている。つまり、著作者は、そのソフトウェアについて、予期した動作をする/しないの保証をしない。また、その動作の結果何らかの損害をもたらしたとしても、それを保障しないと定めている。
- 著作権表示を保持すること
- オープンソースは一定の条件内で自由な利用を認めるものであって、著作権を放棄するものではない。むしろ、「一定の条件」を守らせるための法的根拠は原著作者の著作権に求められる。したがって、多くのライセンスは適切な形でソースコードや付属文書に含まれる著作権表示を保持し、つまり二次的著作物を作った者が自分で0から作ったように偽らないことを定めている。
- ソースコードを伴わないバイナリ形式だけでの配布を認めているライセンスでは、その際にも付属文書に著作権表示を記載するように定めているものもある。
次の条件は、採用しているライセンスと、そうでないライセンスがある。
- 同一ライセンスの適用
- 複製や改変物を頒布する際には、必ず元と同じライセンスでの利用を認めるように定めているものがある。GNU General Public License (GPL) が代表的である。例えば、GPLのソースコードを BSD ライセンスのソースコードと組み合わせて新しいソースコードを作った場合、GPL の規定によって、このソースコードを頒布する際には GPL での利用を認めなければならない(詳細はコピーレフトを参照)。このようなソースコードを利用して、ソースコードを独占する(プロプライエタリな)ソフトウェアを作成することは難しい。
- 原著作者の特別な権利
- この種の条件は、現在ソースコードを独占的に所有している企業がそれをオープンソース化するに当たって考慮する余地のあるものである。例えばMozillaのためのライセンスとして作成されたMPLでは、二次的著作物を頒布する際にはソースコードを公開しなくてはならないが、元々のMozillaの著作権を有していたネットスケープコミュニケーションズだけは特別であって、二次的著作物のソースコードを公開しなくてもよい権利をもっている。