オープンソースソフトウェアとクローズドソースソフトウェアの違いは何ですか?
ソフトウェア愛好者として、あなたはインターネットで使われている「オープンソース」と「プロプライエタリ」という用語を読んだことがあるに違いありません。この二つの間には違いがありますか?
あなたの画面に表示されるすべては言語から成り立っています。どこかの誰かが、あなたのコンピューターが理解できるように言葉を書き留めました。これらの言葉、この言語はコードとして知られています。
私たちのコンピュータが何をすべきかを理解するためには、そのコードを理解する必要があります。それを理解できれば、コンピュータは動作できます。しかし、私たちがコンピュータが実際に何をしているのかを理解するためには、コードを読む必要もあります。
オープンソースソフトウェアはコードを見ることができます。クローズドソースソフトウェアはできません。では、これらの2つのソフトウェアの種類は何で、なぜ両方のアプローチが存在するのでしょうか?
オープンソースソフトウェアとは何ですか?
フリーおよびオープンソースソフトウェアは、プログラムを自由に使用するだけでなく、そのソースコードを表示、編集、共有することもできるソフトウェアです。
ソースコードとは、プログラムを作成する際に人(または場合によってはコンピュータ)が入力したコードを指します。これは、コンピュータが実際に話す言語であるバイナリコードとは異なります。プログラマーがプログラムの作成を完了すると、ソースコードをバイナリプログラムにコンパイルします。
人間はソースコードを読む方法を知っています。コンピュータはバイナリコードを読む方法を知っています。
誰かがプログラムを配布する際、通常はあなたのコンピュータで実行できるバイナリファイルを提供します。そのプログラムは、ソースコードと両方で自由に扱う権利も提供されない限り、無料でオープンソースではありません。
クローズドソースソフトウェアとは何ですか?
クローズドソースソフトウェアは、使用に制限があるソフトウェアであり、主にソースコードを見ることができないことが特徴です。あなたはバイナリファイルのみにアクセスできます。
クローズドソースソフトウェアは、プロプライエタリソフトウェアとしても知られています。これは、ソフトウェア開発者がソースコードをプライベートな専有情報と見なしているためです。このコードに誰でもアクセスできるようにすることは、彼らの見解では、他者に競争上の優位性を与えることになるのです。すなわち、開発者や開発チームを雇うことなく、プログラムを自由にコピーしたり編集したりする能力を持つことです。
Linuxを使って育たなかったのであれば、あなたが馴染みのあるソフトウェアのほとんどはオープンソースではない可能性が高いです。この種のソフトウェアは収益化が容易であり、小規模なアプリ開発者や巨大企業にとって魅力的です。
もう一つの見分けるべき兆候は、プログラムを初めて使用する際にエンドユーザーライセンス契約(EULA)に同意する必要があるかどうかです。
エンドユーザーライセンス契約(EULA)およびフリーソフトウェアライセンス
コンピュータはほとんどの道具とは違います。マウスを動かしたり、タッチパッドをなでたりできることはあまり重要ではありません。キーボードのボタンを押したり、画面を見たりすることは必要ですが、それが本質ではありません。
重要なのはコードです。コードは変更できます。コードはコピーできます。誰かがコードをいじってコピーする能力には本質的な制限がありません。コンピュータメーカーは、あなたにノートパソコンのコピーを作らないように頼む必要はありません。なぜなら、ほとんどの人がそれをすることはできないからです。しかし、コンピュータに付属するソフトウェアをコピーして再配布することは特に難しくないので、そこで制限的なEULAが登場します。
EULAは通常、使用しようとしているソフトウェアで何ができ、何ができないかを法的な表現で説明する巨大なテキストの壁です。一般的には、コードを見えなくしたり、コピーを違法としたり、ライセンスやアクティベーションキーの購入を求めたり、サービス利用規約に違反するソフトウェアの使用方法を詳細に説明することが多いです。
フリーソフトウェアライセンスは契約上の同意を必要とせず、主にプログラムやそのコードで何をしてもよいことを伝えるために存在します。GNU一般公衆利用許諾契約のようないくつかのフリーライセンスは、コピーレフトライセンスと見なされます。これらのライセンスがあなたの行動に課す主な制約は、GPLの下で利用できるコードを使用して開発したプログラムもGPLライセンスで利用可能でなければならないという要件です。
MITライセンスのような他のライセンスは許諾ライセンスと見なされ、この要件はありません。あなたはMITライセンスのコードを取り、それを使用して独自のプログラムを作成することができます。
これがあなたに与える影響
あなたが使用しているソフトウェアのライセンスは、コンピュータ上で何ができるかを決定します。
独自のプログラムにバグがあったり、特定の機能が欲しいと思った場合、唯一の対処法はソフトウェア開発者に通知し、彼らが何か行動を起こしてくれることを願うことです。フリーソフトウェアの場合、技術的知識があれば自分で変更することができます。しばしば、コードの理解がなくても、オンライン上で同じことをしたいと考えている人や、同じ問題に気づいた人がいて、プログラムを調整するための手順を提供している可能性があります。
しかし、大多数の人々はコードを読むことやプログラムを修正することに対する欲望を持っていません。それでは、この問題はほとんどの人に影響を与えないということですか?決してそうではありません。クローズドソースソフトウェアとオープンソースソフトウェアがあなたを非常に異なる形で扱う、いくつかの主要な懸念が高まっている分野があります。
カテゴリー | オープンソースソフトウェア | クローズドソースソフトウェア |
|---|---|---|
コスト |
ほとんど常にお金を払うことなく使用できます。 | お金がかかる可能性が高くなります。プロプライエタリソフトウェアが無料で提供される場合、リスクが伴うことがよくあります。開発者や出版社は、広告を表示したり、あなたの行動を追跡したり、望ましくない(時には悪意のある)ソフトウェアをコンピュータに密かにインストールしたり、その三つの組み合わせを通じてプログラムを別の方法で収益化することがよくあります。 |
プライバシー | 通常、使用できる最もプライバシーを尊重するソフトウェアです。誰かがあなたのプライバシーを侵害するオープンソースプログラムを共有しようとすると、別の誰かが気付き、追跡を削除したコピーを共有します。物議を醸すリスクや評価の低下は、しばしば開発者が商業ソフトウェアでは一般的と見なされる基本的な診断データさえ収集するのを防ぐのに十分です。 | プログラムの使用方法を追跡することがよくあります。モバイルデバイスでは、アプリがあなたの位置や携帯電話にインストールされている他のアプリを監視することが一般的です。一部のアプリは、あなたの連絡先リストを確認したり、ファイルをスキャンしたりします。 |
安全 | 多くの目がコードを見ることができるという事実から利益を得ています。これは、実際に多くの目が攻撃が発生したときにコードを見ていることを保証するものではありませんが、スキルを持った誰でも修正に貢献でき、問題が解決されたことを確認できます。 | クローズドソースソフトウェアはしばしば「不可視性によるセキュリティ」と呼ばれるセキュリティモデルに依存しています。これは悪意のある行為者が脆弱性を見つけてエクスプロイトを作成するのを防ぐものではありません。そして、ソフトウェア開発者がこれらのエクスプロイトについて通知しても、プログラムのコードを見ることができないため、問題が解決されたかどうかを確認することはできません。信頼に頼るしかありません。 |
更新 | アップデートは、ソフトウェア開発がしばしばボランティアに依存しているため、到着に時間がかかることがあります。一方で、アプリやディストリビューションは、数年、あるいは数十年にわたってハードウェアをサポートする傾向があります。 | 時には、プロジェクトにフルタイムで取り組むために支払われている従業員のチームがいるため、より迅速に到着することがあります。しかし、企業が倒産したり、ソフトウェアがもはや利益を生まないと判断した場合、ソフトウェアサポートは突然終了することがあります。また、新しいバージョンは古いハードウェアでは動作する可能性が非常に低くなります。 |
どの種類のソフトウェアを使用すべきですか?
大型店で見つけるコンピュータのほとんどは、クローズドソースのソフトウェアが付属していますし、電話も同様です。技術に詳しい人は、ロックされたオペレーティングシステムをオープンな代替品に置き換えることができます。その他の人々にとっては、オンラインでLinux搭載のノートパソコンを購入したり、どのオペレーティングシステムにも対応したオープンソースアプリをダウンロードしたりすることは、まだ比較的簡単です。
しかし、自由でオープンソースのソフトウェアは同じ程度の資金提供を受けておらず、一般的には「現状のまま」提供されます。それは多くの(ほぼすべての)使用ケースに対して十分な能力を持っていますが、適切なツールがプロプライエタリ形式でのみ利用可能なケースもあります。

