オープンソースとは?その特徴や使う際の注意点を解説
ライブラリやフレームワーク、OS、サーバー、データベースなど、IT関連の情報を調べていると「オープンソース」という言葉を見ることがあると思います。この記事では、オープンソースとはなんなのか、その特徴やメリット・デメリットなどを解説しています。ぜひともご確認ください。
-
Contents
オープンソース(OSS)とは
オープンソースとは、ソースコードが公開されているソフトウェア(ある特定のプログラムのまとまり)のことです。オープンソースにも種類があり、プログラムを変更したソフトウェアを自由に再配布してよいもの、再配布する際のルールを細かく定めているものなどがあります。そのため、「オープンソース」という言葉は使う人によって意味している内容が異なる場合があり、会話や書面でのやり取りでは、相手の意図する認識との齟齬が生じないように気をつける必要があります。
-
オープンソースの定義
米国のOpen Source Initiative (OSI)という公益法人は、Open Source Definition(OSD)でオープンソースの定義を策定しています。ここでは、一般財団法人日本情報経済社会推進協会が翻訳をしたものをご紹介します。
1. 再頒布の自由
2. ソースコード
3. 派生ソフトウェア
4. 作者のソースコードの完全性(integrity)
5. 個人やグループに対する差別の禁止
6. 利用する分野(fields of endeavor)に対する差別の禁止
7. ライセンスの分配(distribution)
8. 特定製品でのみ有効なライセンスの禁止
9. 他のソフトウェアを制限するライセンスの禁止
10. ライセンスは技術中立的でなければならない
※参考:オープンソース – 一般財団法人 日本情報経済社会推進協会
参考としてリンク付けをさせていただいた、日本情報経済社会推進協会のWebページには、それぞれの項目に説明文も記載されています。オープンソースの定義を知ることでライセンスの違いなどもわかりやすくなると思いますので、こちらもぜひご確認ください。
-
フリーソフトとの違い
フリーソフトとは、無料で利用できるソフトウェアのことを指す場合が多いですが、オープンソースのように厳密に定義付けられた言葉ではありません。そのような理由から、「無料かつ自由に変更可能なソフトウェア」、「無料だが自由に変更ができないソフトウェア」、「無料だがソースが公開されていないソフトウェア」、「自由に変更や配布ができるソフトウェア」など、さまざまな説明がWeb上では見受けられます。
しかしながら、フリーソフトでソースを公開しているものはオープンソースソフトウェアと呼ばれることが多くなっているため、日本で利用される「フリーソフト」の言葉の意味としては、「無料で使えるソフト」を第一の認識として判断しつつ、オープンソースと同じく、利用する人の意図やシーンによって違ってくると覚えておくとよいかと思います。
-
オープンソースソフトウェアの代表的な例
オープンソースソフトウェアで有名な3つをお伝えします。
-
WordPress
プログラミング言語を利用せずに、簡単にWebサイトなどの開発ができるCMS(Contents Management System|コンテンツマネジメントシステム)として非常に有名なものがWordPressです。Web上の43%のWebサイトがWordPressで作られていると公式サイトでは宣言されており、弊社R-StoneでもWordPressのスキルを求めている求人があります。弊社求人のように、個人だけでなく、企業のWebサイト構築でも利用される場合があるソフトウェアです。また、WordPressはPHPで作成されているため、PHPのスキルがあれば柔軟なカスタマイズが可能です。
参考:ブログから大規模サイトまで作れる CMS | WordPress.org 日本語
-
OpenOffice
Microsoft社のWordやExcel、PowerPointのようなソフトウェアを無料で提供しているものがOpenOfficeです。Microsoft Officeとも互換性があるため、Microsoft社製品のライセンス料を節約したい企業や個人の間で人気が広まっていきました。2000年からOpenOffice.orgによって運営されてきましたが、2011年からApacheソフトウェア財団にソースコードの著作権とOpenOffice.orgの商標を提供し、現在ではソフトウェアの正式名称がApache OpenOfficeとなっています。
参考:無料総合オフィスソフトウェア – Apache OpenOffice 日本語プロジェクト
-
Linux
Linuxとは、サーバーOSとして高い人気があるソフトウェアです。LinuxカーネルというOSの中心部分がオープンソースとして提供されており、さまざまな企業や団体がLinuxディストリビューションとして、OS機能を持ったLinuxを提供しています。LinuxについてはWindowsと比較をして説明をした記事があるので、詳細はこちらからご確認ください。
関連記事:LinuxとWindowsは何が違う?それぞれのメリット・デメリットや特徴を解説
-
オープンソースソフトウェアを使用するメリット
オープンソースソフトウェアを利用するメリットを4つお伝えします。
-
低コストでの利用が可能
オープンソースソフトウェアは基本的に無料で利用できるため、Windows社の製品のようなライセンス料が発生しません。また、オープンソースソフトウェアのなかには有償のものもありますが、導入費用やランニングコストが安いものが多く、低コストで利用できます。
-
自由にカスタマイズ可能
オープンソースソフトウェアにはGPLやBSD License、MPLなどのライセンスがありますが、その範囲内において自由にカスタマイズができます。オープンソースソフトウェアを利用するうえで欲しい機能、必要な機能がなかった場合、「自分でカスタマイズをして開発ができる」というメリットは、既製品にはないものとなります。
-
脆弱性に事前に気付くことが可能
ソースコードが公開されているため、セキュリティに詳しいエンジニアが担当をすれば脆弱性に気付きやすく、対策ができます。ソースが公開されていないソフトウェアをシステムの基盤とした場合、自分たちでソフトウェア自体の対策ができないので、この点はメリットになります。また、脆弱性に気付いた有志のエンジニアが修正プログラムを公開、あるいはオープンソースソフトウェア自体を更新してくれることも多々あります。
-
サービス終了後も使用可能
有償のソフトウェアでは、開発元のサービス終了や倒産などで利用できなくなるケースがあります。これに対してオープンソースソフトウェアは、自分たちで管理をして使い続けることが可能です。しかしながら、Linuxディストリビューションで有名だったCentOS Linuxのように開発元があり、その団体がサポートをしなくなると決めたオープンソースソフトウェアは脆弱性問題などが発生する可能性もあるため、重要なシステムなどでは利用を継続しないほうが安全です。
-
オープンソースソフトウェアを利用するデメリット
オープンソースソフトウェアを利用するデメリットを3つお伝えします。
-
サポート体制が手薄な場合がある
オープンソースソフトウェアは有志が作り上げていくソフトウェアとなっているため、サポート体制などは基本的にありません。昔から使われてきたオープンソースソフトウェアではコミュニティや過去の質問サイトなどの情報もありますが、基本的には自分で調べて自分で対処をしていくことになります。マニュアル自体がないものもあるため、利用するオープンソースソフトウェアの周辺知識や関連知識などのエンジニアの知識やスキルが求められます。
-
攻撃の狙いにされやすい場合がある
ソースが公開されているということは、悪意のあるユーザーもその内容を見ることができるということです。そのため、頻繁に更新がされないオープンソースソフトウェアを標的にした攻撃がおこなわれる可能性があります。しかし、メリットでお伝えしたように、こちらから対策を講じることができます。
-
使用方法に契約・規約がある場合がある
オープンソースソフトウェアにはライセンスというものがあり、ライセンスの規約に沿って利用しなければいけません。ライセンスにはコピーレフト型、準コピーレフト型、非コピーレフト型があります。それぞれの規約に反して再配布などをおこなった場合、訴訟などに発展する可能性もあるため利用する際には注意しなければいけません。
-
オープンソースソフトウェアを使う際の注意点
上述したように、オープンソースソフトウェアを利用する際はライセンスの規約を遵守する必要があります。コピーレフト型で有名なものは、GPL(GNU General Public License)で、3つのなかで最も規約が厳しく、WordPressやLinuxで利用されています。
準コピーレフト型ではMPL(Mozilla Public License)が有名で、検索ブラウザのFirefox、メールソフトのThunderbirdを手がけるMozilla Foundationのソフトウェアで利用されています。また、MPLはGPLよりも規約が緩和されているライセンスとなります。非コピーレフト型ではBSD Licenseが有名で、3つのなかで1番規約が緩く、PHPやGo言語などで利用されています。
これらはそれぞれ再配布時の著作権表示や作成した派生ソフトウェアへのライセンス適用などの規約が異なっています。ライセンスの理解をしたうえで、オープンソースソフトウェアを利用していきましょう。
-
まとめ
現在のIT事業では、オープンソースソフトウェアを多数利用して開発を進めています。OS、サーバー、データベース、プログラミング言語、ライブラリ、フレームワークと、利用例は枚挙にいとまがありません。それぞれに必要な知識は異なりますが、オープンソースソフトウェアをカスタマイズすることで柔軟で効率的な開発ができるようになるでしょう。しかし、その便利さの一方で規約があるものとなり、利用する際は注意をして取り扱っていきましょう。