●オープンソース
プログラムのソースコードを公開し、誰でも自由にソフトウェアの改良や再配布(再頒布)をすることができるという考え方。
- 再配布が自由である
- ソースコードを入手できる
- ソフトウェアの改変や派生物の作成ができ、元と同じライセンスを適用できる
- 差分の配布と適用を許可する場合においては、ソースコードの改変を制限できる(著作物の完全性の維持)
- 利用する個人やグループを差別しない
- 利用する分野を差別しない
- ライセンスの権利は再配布された全ての人に適用され、追加のライセンス契約を必要としない
- ライセンスの権利は特定の製品の一部として限定されない
- 共に配布される他のソフトウェアを制限しない
10.技術的に中立である
ソフトウェアにおけるライセンスとは、ソフトウェアの利用者が遵守するべき事項(およびその文書)のこと。上記の条件を満たすライセンス(オープンソースライセンス)には様々な種類があり、オープンソースライセンスを持つソフトウェアがオープンソースソフトウェア(OSS)。
OSSの特徴:
・著作権の表示
OSSは著作物であり、派生物(著作物を改変したもの)にも適切な形で著作権の表示を保持する。
・無保証である
著作者はソフトウェアの動作について保証しない。
・開発、メンテナンスの継続
OSSは利用者や開発者のコミュニティがメンテナンスをすることで、修正や新機能の開発を継続する。
●プロプライエタリソフトウェア
オープンソースソフトウェアに対して、プログラムやソースコードの利用に際して、秘密保持契約の締結や利用料の支払いが必要などの制限がかけられているものを「プロプライエタリ(私有の)ソフトウェア」という。Microsoft WindowsやOracle Databaseなど。
●コピーレフト
・著作物の利用やコピー・再配布、改変を制限しない
・派生物(著作物を改変したもの)についても利用やコピー・再配布、改変を制限しない
・コピー・再配布の際はソースコードなど全ての情報を入手可能とする
・同じライセンスを著作物および派生物にも適用し、明記する
一度コピーレフト型のライセンスを用いたソフトウェアを利用すると、その後の派生物はすべて同じライセンスを適用しなくてはならない。コピーレフトの考え方に対して、派生物に対して許容的な「非コピーレフト型」のライセンスも存在する。
●オープンソースライセンス
代表的なオープンソースライセンス
・GPL(GNU General Public License)
GPLはFSFによって管理・運用されておりLinuxはGPLv2。
・AGPL(GNU Affero GPL)
AGPLは、ネットワーク越しのソフトウェアの利用でも、利用者はソースコードの開示を要求できる。
・LGPL(GNU Lesser GPL)
主にライブラリ用に作成。
・MPL(Mozilla Public License)
Mozilla Foundationによって作成。
・BSD License
BSD(Berkeley Software Distribution)ライセンスはカリフォルニア大学によって作成。
・MIT License
MIT(Massachusetts Institute of Technology:マサチューセッツ工科大学)で作成された、BSD系のライセンス。
・Apache License
Apacheソフトウェア財団(ASF)によって作成された、BSD系のライセンス。
●パブリックドメイン
著作物に対して著作権や特許権などの知的財産権が発生していない状態、または失効した状態のこと
●フリーソフトウェア
フリーソフトウェアとは、ソフトウェアの利用・改変・配布などが自由に行えるソフトウェアのこと。
無償のソフトウェアは「フリーウェア」、有償のソフトウェアは「シェアウェア」
●FOSS/FLOSS
「FOSS(Free/Open Source Software)」や「FLOSS(Free/Libre and Open Source Software)」は、自由にソースコードの入手、改変が行えるソフトウェアを総称したもの。
オープンソースソフトウェア、フリーソフトウェアはFOSS、FLOSSに該当。
●オープンソースコミュニティ
オープンソースソフトウェア(OSS)の開発や改善に共通の関心を持ち、共同開発や情報交換を行う人々の集まりのこと。様々なコミュニティが存在し、メンバーは開発者、利用ユーザ、企業などで構成。
●コミュニティへの参加
基本的に誰でも参加できる。意見を交換する手段として、メーリングリストや掲示板・フォーラム、チャットなどが用意。また、イベントやトレーニングが各地で開催されることもあり、他のコミュニティメンバーと直接会って交流することも可能。
●コミュニティでのオープンソースソフトウェアの開発
オープンソースコミュニティでは多数のメンバーがソースコードを変更、共有して開発を行う。
主なバージョン管理システムには、CVSやSubversion、GitやMercurialなど。
●オープンソースコミュニティの例
Linux Foundation、GNUプロジェクトなど。
・Linux Foundation
Linuxだけではなく様々なオープンソースの技術の発展や活用を目的とする非営利の共同事業体。Linuxカーネルの開発者リーナス・トーバルズが参加。
・GNUプロジェクト(グヌープロジェクト)
自由なオペレーティングシステムを開発する目的で、当時MITにいたリチャード・ストールマン(フリーソフトウェア財団の創設者)によって立ち上げられた。
●オープンソースエコシステム
OSSを自社製品に組み込んだ企業がバグ修正やソースコードの公開を行うことによってOSSは利用者が求める機能を実装し広く使用されるようになる、といった循環のこと。