よくある質問・用語集

  • もっと調べる
  • どうやって使う?

OSSとは

OSSとは、無償で利用でき、プログラムのソースコードが一般に公開されているソフトウェアのことである。Open Source Softwareの略称で、日本語でもオープンソースソフトウェアと呼んでいる。無償で利用できるとは言っても、ライセンス(著作権)表示が存在しない訳ではなく、自由に配布したり利用したりすることができるライセンス形式になっている。代表的なOSSの例として、OS(オペレーティングシステム)であるLinux、データベース管理システムのMySQL、コンテンツ管理システムのWordPress、プログラミング言語のJava、ウェブブラウザのFirefoxなどが挙げられる。

OSSという言葉は、Netscapeというウェブブラウザのソースコードを公開するにあたって、適切な言葉を議論した中で生まれてきたものと言われていて、2000年前後くらいから使われるようになった。

実際にOSSと同様の考えは、1980年代から既に普及していた。特に、無償のUnixであるFreeBSDが採用しているBSDライセンスや、フリーソフトウェア財団(GNU)が採用しているGPL(GNU Public License)は、その頃から存在している。

OSSの要件

OSSの要件の厳密な定義はないが、一般的には、米国のOpen Source Initiative(OSI)という組織が掲げたOpen Source Definition(OSD)の定義が使われている。Open Source Definition(OSD)は、Open Source Initiative(OSI)が提唱したオープンソースソフトウェア(OSS)と認められるための基準の要件のことで、以下の10項目が定められている。

  1. 再配布の自由
  2. ソースコードの配布
  3. 派生ソフトウェアの配布の許可
  4. 作者コードの完全性
  5. 個人やグループに対する差別の禁止
  6. 使用分野に対する差別の禁止
  7. ライセンスの配布
  8. 製品を特定したライセンスの禁止
  9. 他のソフトウェアを制限するライセンスの禁止
  10. ライセンスの技術的な中立

OSSはなぜ普及したのか?

現在、OSSはソフトウェア開発やアプリケーション開発、システム開発に無くてはならないものとなり、日本の国内でも様々な業界で利用されている。このようにOSSが普及した背景には、開発した人、企業、利用者がそれぞれメリットを享受できるという理由がある。

インターネットとOSS

インターネットを中心とした多くのテクノロジーが生まれたのは、現在のインターネットの基本となるWebサーバーの技術や暗号化の技術などが、オープンソースで公開されたことがきっかけと言われている。つまり、OSSはインターネットと共に成長してきた。OSSと同様の考え方は、オープンソースムーブメントとも言われている。その考え方自体も、広く世界に普及しつつある。

コミュニティによる管理

OSSは、ソフトウェアの作者でなくても、誰でも自由に修正・変更し再配布することができる。また、多くのOSSはコミュニティによって管理されている。コミュニティには世界中のユーザが参加し、様々な人の貢献によって成り立っている。

例えば、コミュニティに参加している誰かがバグや不具合の発見について投稿すると、同じOSSを使用している誰かがその部分を修正したり、機能を追加・拡張したりすることができる。この場合、バグや不具合の発見も、修正や変更、機能の追加・拡張も貢献の1つである。また、世界中の様々な国で使われることで、別の言語への対応がコミュニティに提案される。マニュアルを整備したり、ソフトウェアの利用方法をインターネット上で公開することも、コミュニティへの貢献である。

OSSは、これらのユーザの貢献の結果、常に性能や品質が維持されながら非常に早いスピードで進化している。

貢献の連鎖

こうした貢献は、OSSのソースコードや文書などとして残る。そして、貢献した人のステータスとなる。こうしたステータスは、企業や個人の技術力の証として、販売活動、就職活動などに影響する。そのため、OSSの世界では、「最大の貢献をしたものが、最大の利益を得る」と言われている。

貢献活動の高まりによって、OSSの機能や品質は、どんどん高くなる。ソフトウェアの安定性も高くなり、利用者が増えればさらに貢献が増えるという、貢献の連鎖が生じる。そして、OSSはさらに普及していくことになる。

OSSと開発言語

OSSは、もともとC言語で開発されたものが多かったが、現在はJava、PHP、Pythonなど多種多様な言語に基づいたフレームワークで開発されている。また、プログラミング言語自体もOSSとなっているものが多い。

例えば、以前までC言語は商用のコンパイラが性能を競っていた。しかし、GNU(現在のFSF)が開発しフリーソフトウェアとして公開したGCC(GNU C Compiler)は、様々なアーキテクチャで高速に動作するため、非常に広い分野で使われるようになった。

また、Javaは、もともとSun Microsystemsが開発した商用のプログラミング言語である。しかし、Sun Microsystemsは、ライセンスフリーのOpen Javaを公開し、OSSとしても利用することができるようになり、広く普及した。

一方、PHP、Pyhton、Go、Java Scriptなどの新世代の言語は、最初からOSSとして開発されている。そのため、OSSの開発者の中でも非常に人気がある。こうした言語には、GoogleやFacebookなどのインターネットサービスベンダーが深く関わっている。開発言語は、主体となって進めている企業のビジネスの発展とともに普及が進む傾向にある。

このように、開発言語がOSSであることも普及の条件になってきている。

ネットサービスとOSS

GoogleやAmazonなど、ネットサービスの多くがOSSをベースにして構成されている。その理由は、OSSを利用することで低価格でサービスを実現することができるためである。その一方で、ネットワークサービス事業者自身も、自社で開発した技術の多くをOSSとして公開している。

例えば、Googleはサービスの提供にコンテナ技術を利用している。このコンテナ技術はKubernetesというOSSとして公開されていて、IoTプラットフォームや機械学習基盤として利用されている。

また、Googleの提供したTensorFlowという機械学習アルゴリズムは、画像認識などに優れ、様々な分野で機械学習システムに応用されている。

デファクトスタンダードとソフトウェアを公開するメリット

特定の分野で大きなシェアを得て、多くの人が利用するようになった物は、デファクトスタンダード(事実上の標準)とよばれる。デファクトスタンダードを生み出した企業は、その分野のリーディングカンパニーとなれる。

企業は、ソフトウェアを公開せず独自に管理し販売することもできる。しかし、多くの場合には、OSSと市場で競争することになる。OSSは、貢献の連鎖によって急速にシェアを拡大することが可能である。そのため、近年では非公開のソフトウェアがデファクトスタンダードとなることはまれで、OSSがデファクトスタンダードとなることが多い。

こうしたことから、企業は、開発したソフトウェアを公開する戦略を取ることが一般的になってきている。

OSS利用のメリット

以下では、OSSを利用することで何のメリットがあるかを解説する。

適したソフトウェアを選択できる

OSSは無料で配布されているので、基本的に費用をかけずに試すことができる。また、インターネット上で公開されているので、検索すれば様々な種類のOSSを容易に見つけることができる。そのため、目的や用途に合わせて最適なソフトウェアを選択することができる。

技術情報が豊富である

OSSに関する技術情報は、他の利用者によってインターネットなどにたくさん公開されている。そのため、OSSの使い方やバグに関する情報などを探している場合は、製品のソフトウェアよりも比較的簡単に入手することができる。利用者の多いソフトウェアほど、この傾向が顕著である。

特定のベンダーに依存しない

有償のソフトウェアを販売する事業者は、利用者を自社製品から逃さないように囲い込もうとする。これをベンダーロックインという。ベンダーロックインをすると、利用価格や運用の方針などをベンダーにコントロールされやすくなり、利用者である企業にとってはリスクと考えられている。対してOSSは、特定のベンダーが提供しているわけではないので、ベンダーロックインが起こりにくい。

低価格で導入できる

製品のソフトウェアでは、利用者数によるライセンス制をとっている場合が多い。OSSは、利用者数の制限がなく無料である。そのため、導入後のライセンス管理やリプレースにかかる費用なども削減でき、システム全体にかかる統合的な価格メリットが大きい。なお、同じく無償のソフトウェアには、フリーウェア(フリーソフト)がある。ただしOSSとは違い、フリーウェアではプログラミングのソースコードが公開されているとは限らない。そのため、脆弱性のチェックなどを行うことができない。また、フリーウェアでは、改良や再配布などの権利も認めらていない場合がある。

信頼性が高い

OSSは、世界中のユーザーによって開発されているため、信頼性が高いと言われている。悪意を持ったコードが入り込む余地が低いためである。また、利用者が多くなり、貢献が多く集まるほど品質が向上していく傾向が強まる。さらにソースコードが公開されているため、不正や脆弱性を誰でも確認することができる。そのため、安全で信頼性が高いソフトウェアが多い。

ソフトウェアの乗り換えやリプレースがしやすい

OSSは、内部の構造が公開されている。そのため、蓄積されたデータがどのようなフォーマットで管理されているのかも、解析することができる。したがって、システムのリプレース時などに他のソフトウェアへデータを移行できる可能性が高い。

OSS利用のデメリット

OSSを利用することで多くのメリットを享受できる反面、デメリットも複数存在する。主な注意事項として、以下のようなポイントに気を付けて利用する必要がある。

改良が早い

利用者が多くなるほど、貢献の連鎖が進み、バグ修正や機能追加などで急速に改良される傾向にある。するとバージョンアップが頻繁に行われ、ソフトウェアのアップデートが頻繁に必要になる。

利用にはある程度の技術力が必要

OSSは無料であるが、自己責任で利用しなければならない。開発元からの保証なども受けられないため、上手く動かなかったり、障害が起きても助けてくれる人はいない。コミュニティに連絡すれば相談に乗ってくれることもあるが、世界中のユーザが参加しているため、多くの場合は英語で技術的な説明をする必要がある。

そのため、活用には相応の知識や技術力が求められる。技術力の不足が懸念される場合には、商用サポートや構築ベンダーなどを利用する必要がある。

コミュニティの終了

人気がなくなったオープンソースソフトウェアのコミュニティは、時間が経つにつれて徐々に活動が低下する。すると、バグがあっても修正する人がいなくなり、メンテナンスなどの更新作業が行われなくなってしまう。セキュリティの問題が発見されても修正がされなくなるため、継続利用の妨げになる場合がある。

OSS利用時の注意点

OSSも上記のようなデメリットを持つため、利用する上で注意すべき点について以下で解説する。

技術力を点検する

自分自身で構築を行う場合は、自ら問題解決を行う必要があるため、それができるのかを考えて利用する必要がある。例えば、ソフトウェアの選択時には、自分が理解できる言語のソフトウェアを選択することが推奨される。

ベンダーへ依頼する

技術力が十分でない場合は、商用サポートの導入や構築を代行してくれるベンダーへの依頼を検討することをおすすめする。ベンダーへ依頼する場合には、目先の費用だけで選択すると間違いの元である。構築後の検査、ドキュメントの整備、障害時の対応やセキュリティ情報の提供など、適切な構築体制を持ち、運用サポートも提供してくれるベンダーを選択するのが望ましい。

さらに、様々なソフトウェアに対応できるベンダーがベストな選択である。というのは、利用しているソフトウェアのコミュニティが終了した場合でも、別のソフトウェアに切り替えるためのサポートが得られるからである。

製品やネットサービスに比べて本当に安いのか考える

特に人数が少ない組織では、OSSの導入コストはかえって割高になる場合がある。最近では、ネットサービスの方が低価格の場合もあるため、導入前に、かかる費用を比較・検討することをおすすめする。

ライセンスの内容に注意する

OSSには、GPL、MIT、BSD、AGLP-3.0、MPL、LGPLやAppacheなど、さまざまなライセンスが存在する。OSSを単に個人や企業で利用する限り、ライセンス違反が発生することはない。ソースコードの改変や改良も、自分が利用するためだけであれば特に問題となることはない。

しかし、改変したソースコードを頒布する際には、オリジナルの情報を掲載することを求められる場合がある。また、OSSを組み込んだ製品を販売したり、サービスを提供したりする場合は、ライセンスで許可された範囲であることを確認する必要がある。

さらに、名称には、商標が設定されている場合もある。そのため、個人や企業での単純な利用でない場合には、ソフトウェアごとに宣言されたライセンス契約や商標に準拠しているかの確認を徹底することが重要である。

デージーネットの取り組み

デージーネットは、OSSを用いてシステムを構築する専門ベンダーで、Linuxやオープンソースソフトウェアに関連した書籍を多く執筆していることでも知られている。書籍は、初心者でも分かりやすい基礎から学ぶための入門書をはじめ、実践的なガイドブックまで幅広く出版している。

また、オープンソースソフトウェアを使ってシステムを構築したい人向けに、ソフトウェアの技術的な詳細情報についてまとめたホワイトペーパーを作成し、Webサイトから無料でダウンロードできるようにしている。その他、オープンソースソフトウェアの導入を検討している人を対象としたセミナーも実施しており、オープンソースソフトウェアの普及に貢献している。

デージーネットのサービスの特徴

デージーネットでは、150種類以上のOSSを扱うことができ、その数は業界でもトップクラスである。特に、多くのユーザが利用するシステムを得意としていて、認証、冗長化、データの移行、IoTプラットフォーム、機械学習基盤の構築などに注力している。さらに、OSSを利用してサービス提供を行うために必要なソフトウェアの開発や、カスタマイズも行っている。弊社で開発したソフトウェアや日本語化したソフトウェアもオープンソースとして公開しており、プロジェクトサイト外部サイトへから確認することができる。なお、以下のページでは、これまでデージーネットで構築してきた幅広い分野におけるOSSの導入事例を紹介している。

デージーネットでは、お客様の環境に合わせたシステムを構築している。デージーネットで構築したシステムは、Open Smart Assistanceという導入後支援サービスを受けることができる。OSSそのものではなく、運用中のシステムが適切に運用できることをサポートしている。 保守サービスでは、使い方から運用方法まで幅広い範囲でのQ&Aや、適正に運用できるようなセキュリティの情報提供、障害調査、回避を行い、安心して利用して頂けるよう管理者の業務をサポートしている。

OSSコンサルティング

また、デージーネットでは、OSSに関する各種のコンサルティングサービスを行っている。システムの企画立案をするOSS導入支援コンサル、自分でサーバーシステムを構築したいが不安があるという方のためのOSS構築支援コンサル、導入したシステムの問題を解決するOSS改善支援コンサルなど、お客様のご要望に応じて、独特のメニューで利用を推進している。

【カテゴリ】:オープンソースソフトウェア  

  • もっと調べる
  • どうやって使う?

【共催セミナー】研修管理・運用の負担を軽減 学習管理システム(LMS)紹介セミナー

日程: 5月23日(木)Webセミナー「BigBlueButton」を使用します。
内容: 社内研修の課題を解決できる学習管理システム(LMS)について紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

OSSに関連するページ(事例など)

OSSとは先頭へ