よくある質問・用語集

サーバ構築のデージーネットTOP > OSS情報 > よくある質問・用語集 > 用語集 > OSSとは

  • どうやって使う?

OSSとは

オープンソフトウェア(OSS)とは、無償で利用でき、ソースコードが公開されているソフトウェアのことである。Open Source Softwareの略称で、日本語でもオープンソースソフトウェアと呼んでいる。無償で利用できるとは言っても、ライセンス(著作権)表示が存在しない訳ではなく、自由に配布したり利用したりすることができるライセンス形式になっている。

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

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

オープンソースソフトウェアの要件

オープンソースソフトウェアの要件の厳密な定義はないが、一般的にはOpen Source Initiative(OSI)が掲げたOpen Source Definition(OSD)の定義が使われている。

Open Source Definition(「OSSで飯が食えるか」より引用)

  1. 再配布の自由

    ライセンスが、ソフトウェアを自由に販売、配布することを制限しないこと。また、販売に対して報酬を要求しないこと。

  2. ソースコードの配布

    ソースコード(設計情報)の配布を許可し、容易に入手できること(無償ダウンロードを推奨)。また、変更が容易な形式で公開されていること。

  3. 派生ソフトウェアの配布の許可

    ライセンスが、ソフトウェアの変更を許可すること。また、変更後の派生ソフトウェアを元のソフトウェアと同じ条件で配布することを許可すること。

  4. 作者コードの完全性

    オリジナルコードの作者は、ソフトウェアを変更した場合には、元のソースコードが分かるようにパッチ形式(変更の差分)で配布するようにライセンスで求めることができる。また、変更したソフトウェアに別の名前を付けるように求めることもできる。

  5. 個人やグループに対する差別の禁止

    ライセンスで特定の個人やグループに対しての利用制限を行うなどの差別を行わないこと。つまり、可能な限りの多種多様な人々が平等に使用でき、ソフトウェアの発展に貢献できなければならない。

  6. 使用分野に対する差別の禁止

    ライセンスで特定の用途に対する利用制限を行うなどの差別を行わないこと。

  7. ライセンスの配布

    プログラムに対する権利は、第三者の追加的なライセンスへの同意を求めることなく、再配布された人に等しく分配されること。

  8. 製品を特定したライセンスの禁止

    プログラムに対する権利が、他の特定の配布物の一部であることを前提としてないこと。つまり、プログラムの一部を配布物から取り出した場合にも、同じ権利で利用できること。

  9. 他のソフトウェアを制限するライセンスの禁止

    他のソフトウェアと同じメディアを使って配布することを禁止するなど、他のソフトウェアに対する制限を行わないこと。

  10. ライセンスの技術的な中立

    他の製品やインタフェース様式に基づいたライセンス条項がないこと。

オープンソースソフトウェアはなぜ普及したのか?

現在、オープンソースソフトウェアは、システム開発の中ではなくてはならないものとなっている。このようにオープンソースソフトウェアが普及したのは、開発した人、企業、利用者のそれぞれにメリットがあるためである。

インターネットとオープンソースソフトウェア

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

コミュニティによる管理

オープンソースソフトウェアは、誰でも自由に修正し再配布することができる。また、多くのオープンソースソフトウェアが、コミュニティで管理されている。コミュニティには、様々な人が参加しており、その結果、オープンソースソフトウェアのコミュニティは、様々な人の貢献で成り立っている。

例えば、誰かがバグや不具合を発見したことをコミュニティに投稿すると、それを誰かが修正する。バグや不具合の発見も貢献の一つであり、修正するのも貢献の一つである。また、様々な国で使われ、別の言語への対応がコミュニティに提案される。マニュアルを整備したり、ソフトウェアの利用方法をインターネット上で公開することも、コミュニティへの貢献である。

オープンソースソフトウェアは、こうした貢献によって非常に早いスピードで進化している。

貢献の連鎖

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

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

ネットサービスとオープンソースソフトウェア

GoogleやAmazonなどの、ネットサービスの多くがオープンソースソフトウェアで構成されている。ネットサービス事業者は、オープンソースソフトウェアを利用することで低価格でサービスを実現しているのだ。一方で、ネットワークサービス事業者も、自社で開発した技術の多くをオープンソースソフトウェアとして公開している。

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

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

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

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

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

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

オープンソースソフトウェア利用のメリット

オープンソースソフトウェアを利用することには、様々なメリットがある。

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

    オープンソースソフトウェアは無料であるので、無料で試すことができる。また、多くの種類があるので、適したソフトウェアを選択することができる。

  • 技術情報が豊富である

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

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

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

  • 低価格で導入できる

    製品のソフトウェアでは、利用者数によるライセンス制をとっている場合が多い。オープンソースソフトウェアは、利用者数によらず無料である。そのため、大規模なシステムほど価格メリットが大きい。

  • 信頼性が高い

    オープンソースソフトウェアは、多くの人によって開発されているため、信頼性が高いと言われている。悪意を持ったコードが入り込む余地が低いためである。また、利用者が多くなり、貢献が多く集まるほど品質が向上していく傾向が強まる。そのため、安全で信頼性が高いソフトウェアが多い。

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

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

オープンソースソフトウェア利用のデメリット

オープンソースソフトウェアにもデメリットがある。

  • 改良が早い

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

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

    オープンソースソフトウェアは無料であるが、自己責任で利用しなければならない。上手く動かなかったり、障害が起きても助けてくれる人はいない。コミュニティに連絡すれば、相談に乗ってくれる場合もあるが、多くの場合には英語でしかも技術的な説明が必要になる。
    そのため、利用には相応の技術力が求められる。技術力の不足が懸念される場合には、商用サポートや構築ベンダーなどを利用する必要がある。

  • コミュニティの終息

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

オープンソースソフトウェア利用時の注意点

こうしたオープンソースソフトウェアのデメリットがあるため、利用する場合には次のような点に注意すべきである。

  • 技術力を点検する

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

  • ベンダーへ依頼する

    技術力が不足する場合には、商用サポートの導入や構築ベンダーへの依頼を検討すべきである。ベンダーへ依頼する場合には、目先の構築価格だけで選択すると間違いの元である。障害時の対応やセキュリティ情報の提供など、適切な運用サポートを提供してくれるベンダーを選択するのが望ましい。
    さらに、様々なソフトウェアに対応できるベンダーがベストな選択である。というのは、利用しているソフトウェアのコミュニティが終息した場合でも、別のソフトウェアに切り替えるためのサポートが得られるからである。

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

    特に人数が少ない組織では、オープンソースソフトウェアの導入はかえって割高になる場合がある。最近では、ネットサービスの方が低価格の場合もある。

デージーネットとオープンソースソフトウェア

デージーネットは、オープンソースソフトウェアを使ってシステムを構築する専門ベンダーである。オープンソースソフトウェアに関する様々な書籍を執筆していることでも知られている。

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

デージーネットでは、100種類以上のオープンソースソフトウェアを扱うことができる。特に、多くのユーザが利用するシステムを得意としていて、認証冗長化、データの移行、IoTプラットフォーム機械学習基盤の構築などに注力している。さらに、オープンソースソフトウェアを利用してサービス提供を行うために必要なソフトウェアの開発や、オープンソースソフトウェアのカスタマイズも行っている。開発したソフトウェアは、オープンソースソフトウェアとして公開している。

デージーネットで構築したシステムは、Open Smart Assistanceという導入後支援サービスを受けることができる。

OSSコンサルティング

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

  • どうやって使う?

関連用語

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


デージーネット用語集のページです。「OSS」という用語と関連情報について説明します。「OSS」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

OSSとは先頭へ