オープンソース 【open source】 オープンソースソフトウェア
OSS / Open Source Software
オープンソースとは、人間が理解しやすいプログラミング言語で書かれたコンピュータプログラムであるソースコードを広く一般に公開し、誰でも自由に扱ってよいとする考え方。また、そのような考えに基づいて公開されたソフトウェアのこと。
ソースコードはソフトウェア開発者などが記述した、人間に可読な形式のプログラムで、コンピュータで実行可能な機械語などによる形式のプログラム(オブジェクトコード)に変換されて実行される。ソースコードがあればプログラムの構造や動作原理などを知ることができ、一部を改変して挙動を変更したり、他のプログラムに組み込むこともできる。企業などが製品として販売するソフトウェアの多くは実行可能形式での頒布であり、ソースコードは企業秘密として秘匿されることが多い。
オープンソースとして公開されたソフトウェアは、その全体をインターネットなどを通じて簡単に入手できるよう公開され、誰でも無償で自由に使用、複製、改変、再配布、自ら開発したプログラムへの組み込みなどを行なうことができる。
ただし、利用条件や制約、利用者の義務などが一切ないわけではなく、「オープンソースライセンス」(open source license)と総称される利用許諾契約に基いて公開されるのが普通である。非営利団体のOpen Source Initiative(OSI)が「Open Source Definition」(OSD:オープンソースの定義)と呼ばれる10箇条から成るガイドラインを発行しており、一般的にはこれを満たしたものがオープンソースライセンスとされる。著名なライセンスにはGPL(GNUパブリックライセンス)やBSDライセンス、Apacheライセンス、MITライセンス、MPL(Mozillaパブリックライセンス)などがある。
オープンソースコミュニティ (open source community)
あるオープンソースソフトウェアの開発や保守、その他関連する活動に携わるに集団や団体をオープンソースコミュニティという。法人格や規約を持ち団体として組織化されたものと、有志の個人がゆるく連帯して活動する形のものがある。
開発者のコミュニティにおいては、ソフトウェアの開発を協力して行い、バグを修正するためのパッチを作成・配布したりといった活動を行う。利用者のコミュニティではバグレポートを共有しバグを報告しあったり、ユーザー会などの形でセミナーやカンファレンスを開催し、オープンソースソフトウェアの普及を促進する活動を行う。関連するドキュメントを多言語に翻訳するといった活動も行う。
OSD (Open Source Definition)
非営利団体オープンソース・イニシアティブ(Open Source Initiative)による、オープンソースプログラムに求められるライセンス条件の定義(definition)をOSD(Open Source Definition)という。
プログラムのソースコード形態での配布、ソースコードの改変・再配布(派生物の配布を含む)などを認めることを条件としているが、二次著作物をオープンソースにすることを求めない点などで、GPLなど一部の著名ライセンスとは考え方が異なる点もある。
他にOSDの定めている条件は、配布形態を問わないライセンス条件の要求、特定人・特定用途の差別禁止、他のソフトウェアに干渉するライセンスの禁止、別ライセンスへの同意を求めることの禁止などである。
OSI (Open Source Initiative)
オープンソース運動を牽引するアメリカの非営利団体。オープンソース思想の啓蒙で有名なエリック・レイモンド(Eric S. Raymond)氏らを中心に1998年に設立された。
“The Open Source Definition” (OSD:オープンソースの定義)と呼ばれる、オープンソースソフトウェアに求められる配布・利用許諾形態を定義する文書を発行しており、世の中の様々なソフトウェアライセンス(利用許諾契約書)のうちOSDに合致するものを紹介している。
また、オープンソースに関連する開発者会議を開催したり、教育・啓蒙活動、政策提言、政府への働きかけなどオープンソースを広めるための環境作りにも力を入れている。
プロプライエタリソフトウェア (proprietary software)
著作権などの権利の所有者がはっきりしており、かつ、権利者が利用者などにその取り扱い方について一定の制限や制御を行っているソフトウェアのこと。いわゆるオープンソースソフトウェアやフリーソフトウェア「以外」のソフトウェアのこと。
企業などが事業として開発・販売しているソフトウェア製品に多く見られるもので、ソフトウェアの利用や複製、再配布、改変、利用者側の制作物への取り込みなどに関して、契約により禁止事項や制限を定めたり、技術的手段により制約したりしているものを指す。
制限や制御の例として、添付の利用許諾契約(EULA)で利用者に複製や販売、複数のコンピュータへの導入を禁じるといった規約を設けたり、インターネットを通じて開発元に利用者登録・認証を行わなければ起動しないようにしたり(プロダクトアクティベーション)、ソースコードを公開せず実行可能形式のコード(バイナリコード)のみを外部に提供したりといった手法がある。
販売や商用利用されているソフトウェアの中にも、企業開発のLinuxディストリビューションのようにオープンソースとして公開されているものもあるため「商用ソフトウェア」とは必ずしも一致しない。