オープンソース(Open Source)とは、ソースコードを無償で公開、再使用、改変、再配布することが可能なソフトウェアを示しています。Open Source は、企業にとってもメリットがあり、現在では企業に欠かせない重要な役割を担っています。
今回の記事では、オープンソース(Open Source)に欠かせない基本知識や、企業利用にもたらすメリット、注意点やライセンスについて詳しく、わかりやすく解説していきます。
目次
オープンソースとは?
オープンソース(英語:Open Source)とは、無償(または最低限の必要なコスト)で公開されたプログラムなどのソースコードで、自由に利用や、改変、再配布ができるという特徴があります。Open Source は、OSS 又は「オープンソースソフトウェア」としても知られています。
OSSは、ソースコードが公開されていないプロプライエタリソフトウェアとは違い、だれでも自分が利用するプラットフォームで動作するように実行形式ファイルを作成したり、作成した実行形式ファイルを配布することが可能です。また、バグを修正したり、機能の追加を行うこと、それらを反映したソースコードを公開したり、実行形式ファイルを配布することも可能です。現在では多くのITベンターも、自社の製品やツールをOSSとして提供しています。CircleCIでも、開発したOrbや、ツールの一部をオープンソースソフトウェアとして一般公開しているので、ご自由に利用、再利用ができます。また、OSSが採用しているライセンスによっては、OSSを商用の製品やサービスに組み込んで使用することも可能です。
OSSは歴史的には、1970年代後半から80年代にかけてソフトウェアやそこで使われている技術が著作権で保護され、プロプライエタリなソフトウェアが技術のクローズ化に向かう反発をきっかけに始まりました。また、1983年にはリチャード・ストールマンによりGNUプロジェクトが開始され、1985年にはプロジェクトを進めるためにFSF(フリーソフトウェア財団)が創設されました。
近年代で代表的なOSSは、GNU/Linuxや、Mozilla Foundationが提供するFirefox、GIMP、jQuery、Java、Python、Git、PyTorch、WordPressなど、OSやプログラミング言語、アプリケーションなど、様々な種類のOSSが存在します。また、多くの企業の開発者もOSSを元に開発を進行し、OSSに対してバグの修正や機能の拡張を行、反映させることで、OSSを利用することに留まらず、OSS発展に貢献しています。
OSSは無償で利用できることから、ライセンスコストの削減につながります。さらに、自社のニーズに合わせて機能の追加やカスタマイズも可能です。
CircleCI OSS
CircleCIをOSSプロジェクトに活用すれば、開発全体をより最適化させることが可能です。また、CircleCIではOSSの開発を加速する豊富なOrbの提供もしています。オープンソースソフトウェアのビルドには、CircleCIを今すぐ活用しましょう。
OSS の基本知識と要件・定義
OSSには、オープンソース・イニシアティブ(OSI)(Open Source Initiative)が提唱したオープンソースの定義( OSD: Open Source Definition) と呼ばれる10項目の要件が存在します。つまり、単にソースコードが公開されているというだけでなく、これらの要件を満たしたソフトウェアが、OSSと名乗ることができるのです。
- 自由に再頒布できること
- 無償(または妥当なコスト)でソースコードを頒布すること
- 同一ライセンスでソフトウェアの変更や派生ソフトウェアの作成、頒布を許可すること
- 作成者のオリジナルコードの完全性
- 個人やグループに対する差別の禁止
- 利用する分野に対する差別の禁止
- ライセンスの分配(追加的ランセンスの同意を必要としない)
- 特定製品でのみ有効なライセンスの禁止
- 他のソフトウェアを制限するライセンスの禁止
- ライセンスは技術的中立的でなければならない
OSS認証に準拠したソフトウェア頒布ライセンスにはOSI認定マークが追加されます。
OSS とフリーソフトとの違いとは?
フリーウェアとオープンソフトウェアの違いとしては、フリーウェアはソースコードが公開されておらず、ソースコードの脆弱性の確認ができないことが挙げられます。また、再配布などの権利等もフリーウェアでは認められていない場合もあります。
一方、オープンソースソフトウェア(OSS)は、ソースコードの再配布が可能です。しかも、OSSはOSやデータベースといった企業の利用を目的とし、 企業が要求する利用環境に耐える性能や機能、品質を実現しています。
OSSは脆弱性対策やバグ修正、機能追加・拡張などを常に継続・維持するために、世界中の多くの開発者が参加するコミュニティ(以下、OSSコミュニ ティ)や開発元企業で開発されています。
開発者にOSSが広まる理由は何?
オープンソース(OSS)が普及する理由は、複数のメリットが存在するからです。例えば OSSの公開によりユーザーが増え、一般ユーザーがメンテナンスする場合には自社のアプリなどのメンテナンスコストの削減が可能になる場合もあります。
また、プログラムやアプリケーションを開発する際に他社のアプリケーションを利用する事がありますが、オープンソースのコードを使用する事により、ウィルスや悪質なコードが導入されていないかどうかを明確化できます。
他にも普及する理由としては、セルフブランディングやSEOへの効果が挙げられます。ソースコードを公開することにより自社のブランディング認知度をWebで上げる企業も少なくありません。
気になるOSSのメリット
OSSソフトウェアの一番のメリットと言えば、「無償」や二次利用が可能であるところが思い浮かぶかも知れませんが、オープンソースの開発や利用には他にも複数のメリットが存在します
信頼性と安定性
OSSでは、ソースコードがユーザーやコミュニティに公開されているので、不正なコードやプログラムの脆弱性等が多くの人の目に触れ、常にアップデートであることから、信頼性と安定性が高まります。
プログラミングのハードル
OSSにより、システム開発に対するハードルが低くなります。つまり、世の中で広く使われているような処理に関しては、ソースコードが既に提供されているので、自社のプロダクト等で類似の処理をさせたい場合に、わざわざ一からコードを開発する必要がなくなります。
開発コストと利用料の削減
オープソースソフトウェアは無償なので、コーディングやテストに関わる時間の削減が実現します。ただし、システム全体に対する動作のテストが必要となりますので、結合テストを行なって最終確認を取りましょう。また、コスト面ではライセンス料金無しにオープンソースコード部分の利用が実現します。
ソースコードの編集と修正の自由
オープンソース(OSS)を利用すると、もしも不具合が発生した場合でも、ソースコードの修正や編集が自由自在になります。また、もしセキュリティに不安がある場合でも、自分の用途、要件を満たす形でカスタマイズができるので、安心して利用が可能になります。
コミュニティ活動(セルフブランディング)
OSS開発に貢献することにより、自社のブランド認知度の向上が実現します。例えばGitHubなどでは、多様なフレームワークやプログラミングのソースコードを自由に公開する事ができ、OSS活動やオープンソースコミュニティを通して自社のセルフブランディングにもなっています。
覚えておきたい OSS の注意点
無料で利用できるOSSですが、開発者にも、利用者側にも注意すべきポイントがいくつか存在します。先ほどもお伝えした通り、オープンソースソフトウェア(OSS)は、自由に修正や利用が可能になりますが、あらゆることが必ずしも自由とは限りません。この理由に関しては、各 OSS に「ライセンス契約・規約」が存在するからです。OSSライセンスとは、作成者が指定した利用許諾条件ですので、利用時の際には違反しないよう十分注意しましょう。
また、その他にも以下の注意事項があるので押さえておきましょう。
- OSDの基準を満たされていない物はOSSでは無い
- 脆弱性に対する保証は無い
- 有償サポートの手当ての必要性がある場合も有りうる
- 商用目的での使用を禁じているOSSも存在する
- ソースコードの表示等が必要なOSSも存在する
- ライセンス違反をすると法的なリスクがある
OSS 代表的なライセンス一覧
オープンソースソフトウェアには、GPL、MIT、BSD、AGLP-3.0、LGPLやAppacheなど複数のライセンスが存在します。また、各ライセンスによって条件が異なる場合もあるので、十分注意しましょう。
ライセンスタイプ | 詳細 |
---|---|
GPL (General Public License) | GPLは、リチャード・ストールマン氏によって作成されたGNU(一般公衆利用許諾書) プロジェクト専用のライセンスであり、FSF(Free Software Foundation)によって管理されています。GPLライセンスでは基本的に、著作権などの表示は消去できません。また派生プログラムもGPLを適用し、公開する必要があります。 |
MIT(エムアイティー)ライセンス | MITライセンスとは、名前の通りアメリカのMIT(マサチューセッツ工科大学)によって開発されたOSSのライセンスであり、このライセンスに当たるOSSを開発する場合には、無料で自由に商用利用を可能にさせることが必要になります。また、MITライセンスを元に提供されているOSSでは、販売なども全て自由になります。 |
BSDライセンス | BSD(Berkeley Software Distribution)ライセンスは、 著作権と免責条項を表示すれば再配布が自由になるライセンスです。また、このライセンスは基本的に「無保証」ですので、もし問題が発生した場合、提供側は責任を取ることはありません。 |
AGPL | AGPLでは、ソフトウェアの配布を伴わない場合(サーバーサイドで利用される場合など)であっても、ソースコードの公開が必要なライセンスです。 |
Apache | Apache ライセンスは、Apache ライセンスであることを明記するだけで、商用でも使用・改変・複製・再配布ができ、制限の緩いOSSライセンスです。 |
コピーレフト、非コピーレフトと準コピーレフトについて
OSSのライセンスには、「コピーレフト」、「非コピーレフト」と「準コピーレフト」が存在します。コピーレフト型型のライセンスでは、ライセンステキストの添付や改変したソースコードの開示などが義務付けられており、FSF (Free Software Foundation) が作成した GNU General Public License が最も有名なコピーレフトライセンスとして知られています。
著作者がコピーレフトを宣言した場合には自由に使用、改変、複製が可能です。
コピーレフト(Copyleft)とは、プログラム(もしくはその他の著作物)を自由(自由の意味において。「無償」ではなく)とし、加えてそのプログラムの改変ないし拡張されたバージョンもすべて自由であることを要求するための、一般的な手法の一つです。 Free Software Foundation, Inc
一方で、「非コピーレフトライセンス」とは、BSD-2、 BSD-3、BSD-4-clause、MIT ライセンスで採用されており、ソースコードの公開は不要となります。非コピーレフトは、オープンソースの中でも制約が厳しくないライセンスとして知られています。
準コピーレフトライセンスでは、複製や改編部分のソースコードを開示する義務があります。但し、準コピーレフトでは、改変を伴わない利用や組み込みの際には、利用元や組み込み元のソースコードの開示は不要です。
ライセンス | 類型 | ソースコードの表示 |
---|---|---|
GPL | コピーレフト | 必要 |
MIT | 非コピーレフト | 不要 |
EUPL | コピーレフト | 必要 |
AGPLv3 | コピーレフト | 必要 |
Apache | 非コピーレフト | 不要 |
MPL (Mozilla Public License) | 準コピーレフト | 必要 |
使用しようとしているOSSのライセンス形態を理解しておくことは、とても重要です。OSSのライセンス違反は、法的には著作権法違反であるため、開発の際にはライセンスに関して十分注意する必要があります。
オープンソースの開発なら CircleCI
業界トップのCI/CDプラットフォームで、オープンソース開発ビルドを最適化させましょう。
OSSのまとめ
オープンソースソフトウェア(OSS)には多くのメリットを開発側と利用者側にもたらしますが、ライセンス形態によっても条件が異なります。OSSを今後利用または開発される方々は、ライセンスなどの基本知識をしっかりと学んだ状態でオープンソースを使用しましょう。また、OSSの分野に関する情報は、日本OSS推進フォーラムが提供する「OSS鳥瞰図」が初心者の方々に役立ちますので、是非参考にして下さい。