基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,オープンソースソフトウェア(OSS)についてシンプルにまとめています。オープンソースソフトウェア(OSS),オープンソースの定義(OSD)について説明しています。
オープンソースソフトウェア(OSS)
オープンソースソフトウェアとは,ソースプログラムを公開し,誰でも自由に入手や利用,改変,複製,再配布を可能にしたソフトウェアのことをいいます。
※ 著作権は放棄されていない。作成者や利用者に対する利用許諾契約に基づいて配布される
オープンソースの定義(OSD;The Open Source Definition)
オープンソースの定義は,次のとおりです。
※ オープンソースの定義は,オープンソースイニシアティブ(OSI)が作成し文書にまとめている
1. 再頒布の自由
「オープンソース」であるライセンス(以下「ライセンス」と略)は,出自の様々なプログラムを集めたソフトウェア頒布物(ディストリビューション)の一部として,ソフトウェアを販売あるいは無料で頒布することを制限してはなりません。
2. ソースコード
「オープンソース」であるプログラムはソースコードを含んでいなければならず,コンパイル済形式と同様にソースコードでの頒布も許可されていなければなりません。何らかの事情でソースコードと共に頒布しない場合には,ソースコードを複製に要するコストとして妥当な額程度の費用で入手できる方法を用意し,それをはっきりと公表しなければなりません。方法として好ましいのはインターネットを通じての無料ダウンロードです。ソースコードは,プログラマがプログラムを変更しやすい形態でなければなりません。意図的にソースコードを分かりにくくすることは許されませんし,プリプロセッサや変換プログラムの出力のような中間形式は認められません。
3. 派生ソフトウェア
ライセンスは,ソフトウェアの変更と派生ソフトウェアの作成,並びに派生ソフトウェアを元のソフトウェアと同じライセンスの下で頒布することを許可しなければなりません。
4. 作者のソースコードの完全性(integrity)
バイナリ構築の際にプログラムを変更するため,ソースコードと一緒に「バッチファイル」を頒布することを認める場合に限り,ライセンスによって変更されたソースコードの頒布を制限することができます。ライセンスは,変更されたソースコードから構築されたソフトウェアの頒布を明確に許可していなければなりませんが,派生ソフトウェアに元のソフトウェアとは異なる名前やバージョン番号をつけるよう義務付けるのは構いません。
5. 個人やグループに対する差別の禁止
ライセンスは特定の個人やグループを差別してはなりません。
6. 利用する分野(fields of endeavor)に対する差別の禁止
ライセンスはある特定の分野でプログラムを使うことを制限してはなりません。例えば,プログラムの企業での使用や,遺伝子研究の分野での使用を制限してはなりません。
7. ライセンスの分配(distribution)
プログラムに付随する権利はそのプログラムが再頒布された者全てに等しく認められなければならず,彼らが何らかの追加的ライセンスに同意することを必要としてはなりません。
8. 特定製品でのみ有効なライセンスの禁止
プログラムに付与された権利は,それがある特定のソフトウェア頒布物の一部であるということに依存するものであってはなりません。プログラムをその頒布物から取り出したとしても,そのプログラム自身のライセンスの範囲内で使用あるいは頒布される限り,プログラムが再頒布される全ての人々が,元のソフトウェア頒布物において与えられていた権利と同等の権利を有することを保証しなければなりません。
9. 他のソフトウェアを制限するライセンスの禁止
ライセンスはそのソフトウェアと共に頒布される他のソフトウェアに制限を設けてはなりません。例えば,ライセンスは同じ媒体で頒布される他のプログラムが全てオープンソースソフトウェアであることを要求してはなりません。
10. ライセンスは技術中立的でなければならない
ライセンス中に,特定の技術やインターフェースの様式に強く依存するような規定があってはなりません。
まとめ
今回は,オープンソースソフトウェア(OSS)について,シンプルにまとめてみました。オープンソースの定義については,暗記する必要はありませんが,内容は理解しておきましょう。