序章

多くの人が忘れがちなソフトウェア開発の1つの側面は、ソフトウェアのライセンスを取得する方法です。 ソフトウェアライセンスは、ライセンシー(エンドユーザー)がコードをどのように使用および配布できるかを規定します。これは、テクノロジーが採用される範囲に大きな影響を与える可能性があります。 最新のソフトウェアのほとんどは、発行者または作成者がソフトウェアの知的財産権を保持できるようにする独自のライセンスの下で販売されています。

ただし、これによりソフトウェア発行者の手に不必要なレベルの制御が与えられると主張する別の視点があります。 ライセンシーがソフトウェアのソースコードをコピーおよび変更することを防ぐことにより、プロプライエタリソフトウェアの発行者はイノベーションを抑制し、新しいテクノロジーの潜在的な成長を抑制します。 このスタンスは、ソフトウェアのソースコードを研究、変更、および共有する権利をユーザーに付与するライセンスの作成に影響を与えました。 このような方法でライセンスされたソフトウェアは、通常、「フリーソフトウェア」または「オープンソースソフトウェア」の2つの名前のいずれかで知られています。

大まかに言えば、どちらの用語も同じことを指します。つまり、使用方法にほとんど制限のないソフトウェアです。 支持者の観点からは、フリーソフトウェアとオープンソースソフトウェアの両方が、プロプライエタリソフトウェアよりも安全で効率的であり、より確実に機能します。 しかし、なぜ同じものに2つのラベルがあるのでしょうか。 答えには、少しの歴史と、2つの別々であるが密接に関連する動きを形成するニュアンスの理解が含まれます。

少し背景

ソフトウェアを使用している個人が、法的な影響なしにソースコードを表示、編集、および共有できるようにする必要があるという考えは、目新しいことではありません。 1970年代以前は、ソフトウェアは通常、ソースコードとともに配布されていました。その理由は、ソフトウェアは通常ハードウェア固有であり、エンドユーザーは特定のマシンで実行するか、特別な機能を追加するためにソフトウェアを変更する必要があるためです。

この時期にコンピューターを操作したほとんどの人は、厳密に学術的または研究的な設定でそうしました。 これは、コンピューティングリソースが頻繁に共有されることを意味し、より効率的なワークフローまたはより信頼性の高いソリューションを作成するためにソフトウェアを変更することが広く推奨されました。 たとえば、カリフォルニア大学バークレー校のProject Genieは、ラボのSDS 930コンピューターのソースコードをハッキングすることにより、バークレータイムシェアリングシステム(ゼロから構築されたタイムシェアリングオペレーティングシステム)を開発しました。

しかし、ソフトウェアの作成がより複雑で費用がかかるようになると、ソフトウェア会社は、収益源を保護し、競合他社の実装へのアクセスを拒否するために、ソースコードの無制限の共有を停止する方法を模索しました。 彼らは著作権やリース契約を含む製品に法的制限を課し始め、また所有権のあるライセンスの下で製品を配布し始めました。 1970年代の終わりまでに、ほとんどのソフトウェア会社はソースコードを含むソフトウェアの出荷を停止していました。 これにより、多くの長年のコンピューターユーザーが不満を表明し、彼らの精神が最終的に自由ソフトウェア運動の基盤を形成することになりました。

自由ソフトウェアの始まり

自由ソフトウェア運動は、主にリチャード・ストールマンの発案によるものでした。 ストールマンは、プロプライエタリソフトウェアライセンスが登場する前の1970年代初頭にコンピュータサイエンスの研究を開始し、1980年代初頭までMIT人工知能研究所で研究者として働いていました。 10年以上にわたってアカデミックハッカーコミュニティのメンバーであった彼は、プロプライエタリソフトウェアの普及に不満を募らせ、既存のソフトウェアを革新および改善する人々の権利を侵害していると見なすようになりました。

1983年、ストールマンはGNUプロジェクトを立ち上げました。これは、ユーザーがソースコードを表示、変更、共有する自由を提供する完全なオペレーティングシステムを作成するための取り組みです。 ストールマンは、 GNUマニフェストで、プロジェクトに対する彼の動機を明確に述べました。 その中で、彼は、プロプライエタリライセンスがコミュニティ主導のソフトウェア開発をブロックし、イノベーションを効果的にサイロ化し、テクノロジーの進歩を損なうという彼の確信を述べています。

Stallmanによれば、これは、コードを自分のニーズに合わせて変更したり、新しい機能を提供するように変更したりできるユーザーや開発者に不当な負担をかけます。 したがって、GNUプロジェクトは、プロプライエタリソフトウェアの台頭への対応であると同時に、自由に共有されるソースコードと共同ソフトウェア開発の前の時代へのコールバックと見なすことができます。

1985年、ストールマンは、フリーソフトウェアファウンデーション(FSF)を設立することにより、GNUプロジェクトを構築しました。これは、フリーソフトウェアの概念を広く一般に宣伝することを目的とした非営利団体です。 Stallmanは後に、GNU General Public Licenseを開発しました。これは、エンドユーザーがソースコードを自由に実行、表示、共有する権利を保証するソフトウェアライセンスです。

FSFによると、ソフトウェアが真に「無料」であると見なされるためには、そのライセンスがユーザーに4つの本質的な自由を保証する必要があります。

  • 目的を問わず、プログラムを自由に実行できます。
  • プログラムがどのように機能するかを研究し、プログラムを変更して、希望どおりにコンピューティングを実行できるようにする自由。 ソースコードへのアクセスは、このための前提条件です。
  • あなたがあなたの隣人を助けることができるようにコピーを再配布する自由。
  • 変更したバージョンのコピーを他の人に配布する自由。 これを行うことにより、コミュニティ全体に変更の恩恵を受ける機会を与えることができます。 ソースコードへのアクセスは、このための前提条件です。

FSFは、これらの基準のそれぞれを満たさないソフトウェアは、フリーではないため、非倫理的であると見なします。

オープンソースの台頭

Stallmanは、ユーザーが適切と思われるソースコードを自由に変更および共有できるという考えを関連付けるために、「フリーソフトウェア」というラベルを選択しました。 多くの人が「フリーソフトウェア」とはゼロコストで入手できるソフトウェア(より正確には「フリーウェア」または「シェアウェア」とラベル付けされる)を指すと考えているため、これは長年にわたって混乱を招きました。 FSFは、名前の選択を「言論の自由のように、ビールのようにではなく、言論の自由のように考えてください」という言葉で有名に説明しています。

しかし、1990年代後半までに、一部のGNUおよびLinux愛好家の間で、この二重の意味により、多くのユーザーが自由ソフトウェアの背後にある哲学とプロプライエタリコードに対するその利点を見逃してしまうという懸念が高まっていました。 FSFは、あらゆる種類のプロプライエタリソフトウェアに対する強硬な倫理的姿勢でも知られるようになりました。 一部の自由ソフトウェア支持者の間では、このアプローチはビジネスの利益にとってあまりにも不親切であり、最終的には自由ソフトウェア運動の普及を妨げるだろうという懸念がありました。

大聖堂とバザール

1997年にエリックS。 当時フリーソフトウェアの提唱者であり開発者だったレイモンドは、さまざまなフリーソフトウェアプロジェクトで使用されている2つの異なる開発モデルを比較する、広く引用されているエッセイである大聖堂とバザールを書きました。 「TheCathedral」とは、GNU Emacsの開発に代表される、独占的な開発者グループがコードを作成するトップダウン開発モデルを指します。 一方、「バザール」とは、Linuxカーネルの開発の場合と同様に、インターネットを介してコードを公に開発する方法を指します。

エッセイの中心的な議論は、より多くの人々がソースコードを表示して実験できるため、Bazaarモデルはソフトウェアのバグを見つけて解決するのに本質的により効果的であるということです。 したがって、レイモンドは、コミュニティ主導のボトムアップ開発プロセスを利用することで、より安全で信頼性の高いソフトウェアが得られると主張しました。

大聖堂とバザールで提示されたアイデアに部分的に応えて、Netscapeは1998年の初めにCommunicatorWebブラウザーのソースコードを自由ソフトウェアとしてリリースしました。 (Communicatorのソースコードは後でMozilla FireFox 1.0の基礎を形成します)。 Netscapeがこのソースコードリリースで見た商業的可能性に触発されて、自由ソフトウェア愛好家のグループ(Raymond、Linus Torvalds、Philip Zimmerman、および他の多くを含む)は、自由ソフトウェア運動のブランドを変更し、その焦点を倫理的または哲学的からシフトしようとしました動機。 このグループは、自由に共有できるソフトウェアのラベルとして「オープンソース」を選択しました。これは、共同でコミュニティ主導の開発モデルのビジネス価値をより適切に反映することを期待しています。

その後まもなく、オープンソースイニシアチブ(OSI)がレイモンドとブルースペレンズによって設立され、新しい用語の使用とオープンソース原則の普及の両方を奨励しました。 OSIはまた、オープンソースの定義を開発しました。これは、ソフトウェアのライセンスがオープンソースと見なされるために遵守しなければならない10の原則のリストです。

  1. 無料の再配布-ライセンスは、複数のソースからのプログラムを含むより大きなソフトウェア配布のコンポーネントとして、ソフトウェアを販売または配布することをいかなる当事者にも制限しないものとします。
  2. ソースコード-プログラムにはソースコードが含まれている必要があり、コンパイルされた形式だけでなくソースコードでの配布も許可されている必要があります。
  3. 派生作品-ライセンスでは、変更および派生作品を許可する必要があり、元のソフトウェアのライセンスと同じ条件で配布できるようにする必要があります。
  4. 作成者のソースコードの整合性-ライセンスは、プログラムを変更する目的でソースコードを含む「パッチファイル」の配布を許可している場合にのみ、変更された形式でのソースコードの配布を制限できます。ビルド時間。
  5. 個人またはグループに対する差別の禁止-ライセンスは、個人または個人のグループを差別してはなりません。
  6. 取り組み分野に対する差別の禁止-ライセンスは、特定の取り組み分野でのプログラムの使用を制限してはなりません。
  7. ライセンスの配布-プログラムに付随する権利は、それらの当事者による追加のライセンスの実行を必要とせずに、プログラムが再配布されるすべての人に適用される必要があります。
  8. ライセンスは製品に固有のものであってはなりません-プログラムに付随する権利は、プログラムが特定のソフトウェアディストリビューションの一部であることに依存してはなりません。
  9. ライセンスは他のソフトウェアを制限してはなりません-ライセンスは、ライセンスされたソフトウェアと一緒に配布される他のソフトウェアに制限を課してはなりません。
  10. ライセンスはテクノロジーに中立である必要があります-ライセンスの提供は、個々のテクノロジーまたはインターフェイスのスタイルに基づくことはできません。

フリーソフトウェアとオープンソースソフトウェアの違い

ほとんどの人にとって、「フリーソフトウェア」と「オープンソースソフトウェア」の意味の違いはごくわずかであり、アプローチや哲学のわずかな違いに起因しています。 Open Source Initiativeが見ているように、どちらの用語も同じ意味であり、ほぼすべてのコンテキストで同じ意味で使用できます。 彼らは単に「オープンソース」ラベルを好む。なぜなら、それはソフトウェアのより明確な説明と、それがどのように使用されるべきかについてのその作成者の意図を提供すると信じているからである。

しかし、「自由ソフトウェア」キャンプの場合、「オープンソース」は、プロプライエタリソフトウェアによって引き起こされる運動の重要性と潜在的な長期的な社会問題を完全には伝えていません。 フリーソフトウェアファウンデーションは、OSIが非独占的なソフトウェアの実用的な利点(その収益性とコミュニティ主導の開発モデルの効率を含む)の促進にあまりにも関心があり、ユーザーの権利を制限するという倫理的な問題には十分に関心がないと考えています。独自の条件でコードを変更および改善します。

特定のソフトウェアが無料であるかオープンソースであるかは、そのソフトウェアが配布されているライセンスと、そのライセンスがOpen Source Initiative、Free Software Foundation、またはその両方によって承認されているかどうかによって異なります。 どのライセンスがどの組織によって承認されているかにはかなりの重複がありますが、いくつかの例外があります。 たとえば、NASAオープンソース契約はOSIが承認したライセンスであり、FSFはこれを制限が厳しすぎると見なしています。 したがって、FSFは、そのライセンスの下で配布されるソフトウェアを使用することを誰にも思いとどまらせます。 しかし、一般的に言えば、それが自由ソフトウェアとして説明できれば、オープンソースソフトウェアの定義にも適合する可能性が高いです。

別名

何年にもわたって、この種のソフトウェアの他のいくつかの名前が、この議論に終止符を打つために提案されてきました。 「フリーでオープンソースのソフトウェア」(多くの場合「FOSS」と略される)は、最も広く使用されているものの1つであり、2つの間の安全なニュートラルであると考えられています。 「libreソフトウェア」(「libre」はいくつかのロマンス諸語に由来し、大まかに「自由の状態」を意味する)という用語は、それ自体が支持されているため、頭字語「FLOSS」(「free / libre andオープンソースソフトウェア)もかなり一般的になっています。

フリーソフトウェアとオープンソースソフトウェアはどちらも、パブリックドメインのソフトウェアとは異なることに注意してください。 フリーでオープンソースのソフトウェアは、ライセンスを通じてその自由を定義しますが、パブリックドメインソフトウェアは、同じ長所のいくつかに準拠する場合がありますが、ライセンスシステムの範囲外になります。 フリーソフトウェアとオープンソースソフトウェアの重要な違いは、フリーまたはオープンソースのソースコードに基づいて動作するものもFOSSライセンスで配布する必要があるということです。 パブリックドメインにリリースされたソフトウェアには、この要件はありません。

パブリックドメインソフトウェアに関する別の問題は、世界のすべての国が著作権で保護されていないコンテンツを認識しているわけではないという事実から生じています。 これにより、ソフトウェアの一部がパブリックドメインにあるという世界的に認められた声明を出すことが不可能になります。 したがって、FSFもOSIも、開発者がソフトウェアをパブリックドメインにリリースすることを奨励していません。

結論

「フリーソフトウェア」と「オープンソースソフトウェア」という用語は、ほとんどのコンテキストで交換可能であり、誰かがどちらかを好むかどうかは、通常、セマンティクスまたは哲学的な見通しの問題に帰着します。 ただし、ソフトウェアを開発して一般に公開しようとしている多くのプログラマーや、人々がテクノロジーを見て対話する方法を変えたいと考えている活動家にとって、違いは重要なものになる可能性があります。 したがって、新しいソフトウェアをリリースするときは、プロプライエタリライセンスを含むさまざまなライセンスの長所と短所を慎重に比較検討し、特定のニーズに最適なものを選択することが不可欠です。

次のプロジェクトに適したソフトウェアライセンスについて詳しく知りたい場合は、フリーソフトウェアファウンデーションのライセンスリストに、無料ライセンスと非無料ライセンスの両方の詳細な説明が記載されています。 さらに、OpenSourceInitiativeのライセンスと標準ページも興味深いかもしれません。