OSSとはOpen Source Softwareの略になります。
なんとなく意味がわかると思いますが、細かな定義まで抑えてる人は少ないんじゃないかと思います。
本記事で定義までバッチシ抑えていきましょう。
OSSとは。
定義に行く前にOSSを説明していきます。
OSSは「利用者の目的を問わず、ソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェア」のことです。
端的に言うと、自由にいじっていいソフトウェアのことになります。
代表的な例としては、RubyやWordPressがあげられます。
OSSの定義
実はOSSの定義は、世界単位で決まってるわけではなく、国単位での取り決めなのです。
ここでは、日本とアメリカの定義を紹介していきます。
日本の定義
総務省が定めているOSSの定義は、オープンソース・イニシアチブのオープンソースの定義を満たすものとあります。
オープンソースの定義については、後ほど解説します。
アメリカの定義
国防総省が定めている、OSSの定義は「可読性のあるコードが利用・学習・再利用・修正・改善・再頒布が可能であるソフトウェア」となります。
オープンソースの定義
オープンソースの定義は下記10項目のことを指します。
- 再配布の自由
- ソースコード
- 派生物
- 作者のソースコードの完全性
- 個人または団体に対する差別の禁止
- 活動分野に対する差別の禁止
- ライセンスの配布
- ライセンスは製品固有であってはいけない
- ライセンスは他のソフトウェアを制限してはならない
- ライセンスは技術中立的でなければならない
それぞれの項目について解説していきます。
配布の自由
ソフトウェアの一部として、販売や配布に制限をかけてはいけない。
販売する場合に利益を得てはいけない。とあります。
要するに無理で自由に取得出来るものでなくてはいけないということになります。
ソースコード
プログラムにはソースコードが含まれている必要があり、コンパイルされた形式だけでの配布は認められていない。
また、意図的に難読化されたソースコードは許可されていない。とあります。
読むことが出来るソースコードという点が大切になります。
ソースコードが開示されていても、読めなかったら意味がありません。
派生物
変更と派生物を許可する必要があり、もとのソフトウェアと同じ条件で配布できるようにする必要がある。とあります。
これは、ソースコードを開示するだけではなく、様々な人の手で進化させていくための定義です。
作者のソースコードの完全性
ソースコードと一緒に「パッチファイル」を頒布することを認める場合に限り、ライセンスによって変更さ れたソースコードの頒布を制限することができる。とあります。
ユーザーはソフトウェアの責任をだれが持っているのかを知る権利があります。反対に、ソフトウェアの作者はユーザーがなにをサポートすることを要求しているか知る権利があります。
上記の理由のため、OSSはソースコードが容易に入手可能でなくてはならないのですが、一方でそれがいっさい変更されていない本来の基本ソースとパッチという形で頒布することを義務付けても構わないとされています。
個人または団体に対する差別の禁止
個人または団体に対して、使用の制限をかけてはならない。とあります。
これは、ソフトウェアを進化させていくためには可能な限り多種多様な人々、グループに使用して貰う必要があるためです。
活動分野に対する差別の禁止
特定の活動分野に対して、使用の制限をかけてはならない。とあります。
これは、ライセンスによってOSSが商業的に使われることを妨げる策略を禁止するための定義になります。
ライセンスの配布
プログラムに付随する権利は、プログラムは配布された者すべてに等しく認められなければならず、追加ライセンスに同意することを必要としてはいけない。とあります。
機密保持契約への同意の要求などの間接的な手段によって囲い込むことを禁止するための定義になります。
ライセンスは製品固有であってはいけない
プログラムに付与された権利は、特定のソフトウェアに依存するものであってはいけないとあります。
プログラムが再配布される人すべてが、もとのソフトウェアにおいて与えられた権利と同等の権利を有することを保証しなくてはいけないためです。
ライセンスは他のソフトウェアを制限してはならない
ライセンスはそのソフトウェアと共に頒布される他のソフトウェアに制限を設けてはならない。とあります。
配布後のソフトウェアの使用法はユーザーが選択するものなので、そこに制限をかけてはいけません。
ライセンスは技術中立的でなければならない
ライセンスに、特定の技術やインターフェースの様式に強く依存するような規定があってならない。とあります。
まとめ
OSS自体は皆さんが想像する通りのものですが、OSSと定義されるために様々な決まり事があるのです。
コメント