オープンソース (open source) とは、一般的にはソースコードを公開しているソフトウエアを意味しますが、近年では、Arduinoの様なオープンソース・ハードウエアにも、その概念が広がりつつあります。
オープンソース
Open Source Initiativeという団体が、オープンソース・ライセンスの定義を次の様に定めています。
1.自由に再頒布ができる
2.ソースコードが入手可能
3.派生物が作成可能で、派生物には同じライセンスを適用可能
4.差分情報の配布を認める場合、同一性保持を要求しても可
5.個人およびグループを差別しない
6.適用領域に基づいた差別をしない
7.再配布において追加ライセンスを必要としない
8.特定製品に依存しない
9.同じ媒体で配布される他のソフトウェアを制限しない
10.技術的な中立
上記の要件を満たしており、ソースコードが入手可能なものは、オープンソース(ソフトウエア)と言えます。
フリーソフトウエア
オープンソースと似たものとしてフリーソフトウエアと呼ばれる概念も存在します。Free Software Foundation(FSF)は、ソフトウェアの作成、頒布、改変する自由を広める活動を行っていますが、フリーソフトウエアの4つの定義を定めています。
0.<第0の自由>目的に関わらず、プログラムを実行する自由
1.<第1の自由>プログラムの動作を研究し、必要に応じて修正し改変する自由 (ソースコードが入手可能であることが前提条件となる)
2.<第2の自由>コピーを再頒布する自由
3.<第 3 の自由>プログラムを改良し、コミュニティ全体が恩恵を享受できる様に 改良点を発表する自由(ソースコードが入手可能であることが前提条件となる)
より具体的には、フリーソフトウェアとして認められるライセンスには、大きく分けて次の2種類があります。
(1)コピーレフトであるライセンス
再配布、改変後もフリーソフトウェアにする必要があるライセンスで、代表的なものとして、GPLやLGPLが挙げられます。
(2)コピーレフトでないライセンス
再配布、改変後はフリーソフトウェアにする必要のないライセンスで、代表的なものとして、BSDライセンスが挙げられます。
コピーレフトとは、配布の際に、配布される人にソースコードを自由に取得・変更・再配布する権利を提供しなければいけない制約の事で、この制約をつけることでフリーソフトウェアになったソフトウエアは、フリーソフトウェアであり続けることになります。
オープンソース・ハードウエア
オープンソース・ハードウエアとは、上記のフリーソフトウェアやオープンソースソフトウェアと同じ概念で提供されるコンピュータや電子機器の設計情報を意味します。もっとも有名で成功したオープンソース・ハードウエアの例としては、easy laboでも取り上げているArduinoや、オープンソースの自己複製型3次元プリンタRepRapが挙げられます。ArduinoやRepRapが「ものづくり」技術の普及に果たした役割は非常に大きかったと言えますので、今後も優れたオープンソース・ハードウエアの登場が期待されます。
オープンソースの活用
オープンソースやフリーソフトウエアを、研究開発やビジネスに役立てる事は可能です。ただし使用するリソースのライセンス形態を確認し、その規約に沿った利用を行う事が必要です。例えば、LinuxカーネルはGPLのコードを含みますが、今日では、Redhatを始めとするディストリビュータから組み込み製品まで、幅広いビジネス分野で採用されています。通常、これらの様にGPL等のオープンソースを使用している製品については、ソースコードを入手できる手段(ダウンロードサイト等)が用意されています。
以上の様に、オープンソースを上手く利用できれば、開発工数を大幅に削減する事も可能ですが、コピーレフトの制約があるライセンスを含む場合は、ソースコードの開示義務が発生する事を良く理解しておかなければなりません。特にビジネスで利用する際は、各々のライセンスについて制約などを良く知っておく必要があります。
Sponsored Link