ログイン / 登録 アカウント

オープンソース

オープンソースソフトウェアとは

オープンソースソフトウェアは、エンドユーザーが合法的にソースコードを取得できる特定の種類のライセンスを通じてリリースされます。このようなライセンスは多数ありますが、一般に、ソフトウェアは次の場合にオープンソースと見なされます。

  • 追加のコストをかけずにソースコードを取得できる。つまり、ユーザーはソフトウェアを構成するコードを表示し、思い通りに変更を加えることができる。
  • ソースコードを他の新しいソフトウェアに転用できる。つまり、誰でもソースコードを取得して、そこから独自のプログラムを配布できる。

通常、オープンソース・ライセンスにはさらに多くの条項があります。たとえば、既存のソースコードを変更して新しいソフトウェアを作成した場合、そのソフトウェアのリリースには同じライセンスを適用しなくてはならないものもあれば (GNU GPL)、異なるライセンスの下でのリリースを許可するものもあります (GNU LGPL)。

オープンソースソフトウェアは無料なのか

オープンソースソフトウェアであることは、実行可能なソフトウェアが無料で配布されることを意味するわけではありません。ただし、そのソースコードへのアクセスは無料でできます。

たとえば、Red Hat® Enterprise Linux® のソースコードは誰でも自由に利用できますが (公開ページ)、そのソースコードを実行可能なコードに変換するには、専門知識、時間、サーバーが必要です。ソースコードから自力で再構築する必要のない Red Hat Enterprise Linux の本番用コードを入手するには、サブスクリプションを取得します。

オープンソースソフトウェアは、フリーソフトウェア運動と混同されることもあり、それが「オープンソース=無料」という誤解を助長している面もあります。フリーソフトウェア運動は、1970 年代のハッカー文化から発展し、GNU Project と非営利の Free Software Foundation の一環として Richard Stallman 氏が公式に設立したものです。通常、「フリーソフトウェア」という言葉はエンドユーザーの権利の自由 (フリー) を強調するために使われますが、この「フリー」が「無料」を意味すると誤解されることがあります。

実際には、フリーソフトウェアもオープンソースソフトウェアも、コストについては何も規定していません。どちらの種類のソフトウェアも合法的に販売または譲渡できます。では違いはどこにあるかというと、主に共有に関する部分です。フリーソフトウェアでは、ソースコードに変更を加えて共有したい場合、その変更を元のプロジェクトとも共有しなければなりません。オープンソースソフトウェアの場合は、通常、そのような規制はありません。

実務上の違いはありますが、フリーソフトウェアとオープンソースソフトウェアの価値は共通しています。実際、これらの用語をまとめて「FOSS」(Free and Open Source Software) と表現することも少なくありません。

FOSS とプロプライエタリー・ソフトウェア

プロプライエタリー・ソフトウェアと FOSS の決定的な違いは、ソースコードにアクセスできるかどうかです。Microsoft Windows や Adobe Photoshop などのプロプライエタリー・ソフトウェアあるいは商用ソフトウェアのソースコードは、エンドユーザーに公開されていません。Linux® カーネル (Red Hat Enterprise Linux の基盤) のようなフリーソフトウェアや Google Chromium (Chrome Web ブラウザの基盤) などのオープンソースソフトウェアは、それぞれのライセンスを通じてソースコードにアクセスできます。

Linux はフリーソフトウェアなので、Red Hat は Red Hat Enterprise Linux を作成するために加えた変更をオープンソース・コミュニティと共有します。Chromium はオープンソースソフトウェアなので、Google は Chrome を作成するために加えた変更をコミュニティと共有する必要はありません。

しかし、オープンソースソフトウェアについて語るべきは、ソフトウェアライセンスのことだけにとどまりません。すべての人々が利用している現代のインターネットと、ますます人気が高まっているクラウド・コンピューティングは、もしオープンソースソフトウェアから生まれていなければ、今とはまったく異なったものになっていたでしょう。オープンソースは、人々が連携し、共通の目標に向けて組織化する方法を変えるムーブメントにもなっています。 

オープンソースソフトウェアはなぜ重要なのか

オープンソースソフトウェアは、プログラマーのみならず、すべての人々にとって重要です。それは、クローズドソースモデルよりもはるかに多くの人々にイノベーターになれるチャンスを提供するからです。たとえば、オープンソース・コミュニティはオープンソース・プロジェクトを中心に組織されていますが、プロジェクトにはスキルを持つ人なら誰でも参加してコードに貢献できます。これらのグループにも、オープンソース・プロジェクトへの貢献に関する規定はあります。そこはプロプライエタリー・ソフトウェアのチームと同じです。しかしこのプロセスは、貢献したいと考える世界中のすべての人たちに開かれています。

今日使用されている最も重要なアプリケーションとクラウドプラットフォームには、このオープンソース開発モデルによって生まれたものもあります。その中で最も一般的なのが、Web の大部分を支えるサービススタックモデルの LAMP です。LAMP の頭文字が表す意味は次のとおりです。

  • Linux:オープンソースのオペレーティングシステム (OS) であり、世界最大のオープンソース・プロジェクト
  • Apache:初期の Web で重要な役割を果たしたオープンソースのクロスプラットフォーム Web サーバー
  • MySQL:多くのデータベース駆動型 Web アプリケーションで使用されるオープンソースのリレーショナル・データベース管理システム
  • PHP:ソフトウェア開発で使用される汎用スクリプト言語 (Perl または Python 言語に置き換えられることもあります)

よく知られているオープンソース・テクノロジーの他の例としては、モバイル OS の Android、Web ブラウザの Mozilla Firefox、広く使用されているバージョン管理システムの Git、2 つの関連するオフィススイートの OpenOffice と LibreOffice があります。また、視点を広げると、クラウド・コンピューティング、ビッグデータ、人工知能の分野におけるほとんどのイノベーションは、オープンソースソフトウェア・プロジェクトから生まれたものです。 

オープンソースソフトウェアは、初期の Web や、現在最も広く使用されているいくつかのアプリケーションで重要な役割を果たしましたが、それに加えて、企業プログラマーや個人プログラマーにとって他の利点があります。ソースコードがオープンであれば、誰でも簡単に学習できるようになり、新しいプログラミングスキルを身に付けられます。オープンソース・ライセンスにより、学習者はコードを編集して、それを友人やより大きなオープンソース・コミュニティと共有したり、あるいは既存のオープンソース・プロジェクトの修正に貢献したりすることで実践を積むこともできます。

また、オープンソースソフトウェアは、企業が特定のニーズに合わせてカスタマイズしたり、元のソースコードに含まれていない新しいカスタマー・エクスペリエンスを導入したりすることも可能にします。ソースコードがオープンに利用可能で、アクティブなコミュニティがそれをサポートしているということは、セキュリティの脆弱性をチェックしている開発者が多いということでもあるため、オープンソースソフトウェアの方を好む人たちもいます。

オープンソースソフトウェアは、オープンソース開発モデルから生まれました。オープンソース開発モデルは分散化されており、オープンなコラボレーションとピアプロダクションを促進します。これはソフトウェア開発の幅広い動きに影響を与えており、人々はしばしばそのコア原則を「The Open Source Way (オープンソースウェイ)」と呼んでいます。

The Open Source Way (オープンソースウェイ) は技術力のある大勢の人材に支持されており、優れた効果があります。テクノロジーにおけるイノベーションの多くはオープンソース・コミュニティで起こり、世界中の人々がオープンソースソフトウェアを利用する結果となっています。多数の人気のある Web サイトやアプリケーションのベースには Linux、Kubernetes、Git などのプロジェクトが使用され、インターネットのアクセスには Firefox や Chromium などのオープンソース・ブラウザーが使用されています。
 

オープンソースと Red Hat

Red Hat Enterprise Linux logo

Red Hat Enterprise Linux はオープンソースの OS であり、業界をリードするエンタープライズ Linux プラットフォームです。この基盤を使用すると、ベアメタル、仮想、コンテナ、およびあらゆる種類のクラウド環境にわたって、アプリケーションのスケーリングを行うことができます。

Red Hat OpenShift Logo

Red Hat OpenShift® は、Linux コンテナの操作を自動化するオープンソース・プラットフォームである Kubernetes をベースとしています。OpenShift には、ハイブリッドクラウドおよびマルチクラウドのデプロイメントを管理するためのフルスタックの自動化されたオペレーションが含まれています。

Red Hat が The Open Source Way (オープンソースウェイ) を信じる理由をご覧ください