オープンソースとは何ですか?
オープンソースは分散型の本番稼働用モデルであり、その設計はパブリックにアクセス可能であるため、誰でもテクノロジーを変更および共有できます。この用語は、ソフトウェアが特定の無料配布基準に準拠していることを示すために、ソフトウェア開発の文脈で生まれました。今日、オープンソースウェイという用語は、無料の情報交換、ラピッドプロトタイピング、および共同開発の原則に基づく、より幅広い価値セットを示しています。誰でも新しいアイデアを提供し、テクノロジーをさらに改善して、有機的に進化させることができます。
オープンソースが重要なのはなぜですか?
オープンソースのアイデアは、テクノロジーコミュニティから生まれました。技術革新を発展させるには、グローバルなコラボレーションが必要です。例えば、米国のプログラミングチームが、金融アプリケーション向けの新しいオープンソーステクノロジーを開発するとします。オーストラリアの別のプログラミングチームは、医療セクターにより適した新しい機能でテクノロジーを変更します。その後、アジアの 3 つ目のチームが、元のテクノロジーをコアコンポーネントとして使用する新しいオープンソース製品を開発します。
このような知識の共有と集合的なイノベーションは、コミュニティ全体に利益をもたらします。特許、著作権、高額なライセンスの背後にあるテクノロジーを閉じ込めてしまうと、進歩は制限されます。多くの人気のあるオープンソースプロジェクトは、過去数十年にわたって、世界中でテクノロジーの急速な進歩をもたらしました。
オープンソースの原則にはどのようなものがありますか?
オープンソースプロジェクトの背後にある中核的な原則は次のとおりです。
コミュニティ
オープンソースコミュニティは、共通の目的を達成するために集まった人々のグループです。これらの人々の間で共有されている価値観と目標は、意思決定を導き、オープンソースプロジェクトを前進させます。
透明性
オープンソースプロジェクトは、コミュニティの全員が最高の仕事をするために必要な情報や資料に確実にアクセスできるようにします。チームメンバーは全体像を認識し、より効果的な意思決定を行い、お互いのアイデアや発見に基づいて物事を進めます。
オープンコラボレーション
コミュニティプロジェクトはチームワークを促進するため、グループは個人だけでは解決できない問題を解決します。例えば、オープンソースイニシアティブのメンバーは、他の誰かが構築したものを改善するために変更を提供します。また、ルールを確立して、他の人々が将来必要に応じてソリューションを変更できるようにすることもできます。
ラピッドプロトタイピング
オープンソースプロジェクトは、チームメンバーが頻繁にプロトタイプを作成して共有する反復アプローチに従います。ラピッドプロトタイピングは、実験の文化を促進します。うまく機能する変更を改善して採用しつつ、うまく機能しない変更を破棄することができます。
インクルーシブな実力主義
オープンソース運動は、多様な視点と会話を促進します。コミュニティはコンセンサスによって決定を下しますが、成功についても優先的に考えます。最高のアイデアは、オープンソースコミュニティからより多くのサポートと協力を得ることができます。
オープンソースソフトウェアとは何ですか?
オープンソースソフトウェアは、誰でも検査、変更、拡張できるソースコードを備えたソフトウェアです。ソースコードは、コンピュータプログラマーがアプリケーションの機能を変更したり、新しい機能を追加したりするために操作するソフトウェアの一部です。ソフトウェアのソースコードにアクセスできる人は誰でも、アプリケーションに機能を追加したり、既存のエラーのトラブルシューティングを行ったりすることで、そのアプリケーションを改善またはカスタマイズできます。オープンソースソフトウェアは、現在使用されているほとんどのウェブアプリケーションとデバイスに含まれています。オープンソースソフトウェアの例としては、オープンソースオペレーティングシステムである Linux や、オープンソースインターネットブラウザである Mozilla Firefox があります。
オープンソースソフトウェアにはどのような特徴がありますか?
オープンソースソフトウェアの機能は、オープンソース運動の価値観に極めて整合的です。
オープンソース
オープンソースソフトウェアは、次のような特定の配布基準を満たすオープンソースライセンスの下でリリースする必要があります。
- 集約ソフトウェア配布のコンポーネントとしてのソフトウェアの販売または配布に関する制限はありません
- ソースコードを含め、その配布を許可する必要があります
- 変更と派生物を許可する必要があります
- プログラムに付随する権利は、差別なくすべての人に使用可能な状態とされなければなりません
オープンデザイン
オープンデザインは、ソフトウェアを設計および計画するための透明性の高いオープンなプロセスを保証します。これは、コミュニティがソフトウェアの設計と機能のロードマップを推進できるようにするということです。コミュニティのコンセンサスを得るプロセスには時間がかかる可能性があるため、これは困難な場合があります。しかし、コミュニティで合意された設計は、ユーザーのニーズをより効果的に満たすより優れた製品につながります。
オープン開発
オープン開発とは、誰もが平等に参加できるようにするインクルーシブで透明性のある開発プロセスを採用することです。サービスをパブリックにアクセス可能なものとすることで、開発活動の可視性が高まります。例えば、オープンソースプロジェクトは通常、貢献が評価されるメトリクスを明確に示す一連の標準を採用します。これにより、初めての貢献するユーザーによる更新か、上級デベロッパーによる更新かにかかわらず、すべてのソフトウェア更新を同等に考慮することができます。
オープンコミュニティ
オープンコミュニティは、ソフトウェア開発コミュニティが、すべての声を吸い上げ、リーダーとなる機会が全員に与えられている包括的な環境であるようにします。共通の目標を設定し、強力なつながりを確立することで、デベロッパーとユーザーの両方のニーズのバランスを取ります。
オープンソースソフトウェアと他の種類のソフトウェアには、どのような違いがありますか?
時々、ソフトウェアを作成する組織や人々は、商業的な理由でそれをコントロールしたいと考えます。これらの組織や人々は、ソースコードに対する排他的な所有権を維持します。つまり、これらの組織や人々だけが、エラーを修正したり、新しい機能を追加したりするためにコードを変更できるということです。このようなソフトウェアは、プロプライエタリソフトウェアまたはクローズドソースソフトウェアと呼ばれます。Adobe Photoshop や Norton AntiVirus 製品は、プロプライエタリソフトウェアの例です。
オープンソースソフトウェア vs.クローズドソースソフトウェア
オープンソースソフトウェアとクローズドソース (またはプロプライエタリ) ソフトウェアの 3 つの主な違いは、次のとおりです。
信頼性
セキュリティ
すべてのソースコードには、サイバー攻撃に対する脆弱性を生じさせるセキュリティ上の欠陥がある可能性があります。ただし、オープンソースソフトウェアには、高速に修正できるというメリットがあります。お客様や他のコミュニティメンバーがセキュリティの脆弱性を報告すると、オープンソースプロジェクトは 1~2 日以内にコードアップデートをリリースします。営利企業がオープンソースソフトウェアを開発する場合、高い可視性は問題を緊急に修正するよう促すとともに、より優れたオリジナルソフトウェアの創出につながる可能性さえあります。
対照的に、プロプライエタリソフトウェアは、次の理由で更新サイクルが長くなります。
- ベンダーは、特定のプロジェクトに取り組む人が少ない場合があります。
- ベンダーは、セキュリティ上の欠陥よりも財務上の考慮事項を優先する場合があります。
- ベンダーは、複数の変更をバンドルして一度にリリースすることを好むため、セキュリティ更新プログラムのリリースを遅らせる可能性があります。
ライセンス
- 個人プロジェクトのためにソースコードを変更すること。
- ユーザーが、他のユーザーによる変更の表示を引き続き許可する場合は、変更されたコードを再配布します。
オープンソースソフトウェアライセンスの種類には、どのようなものがありますか?
オープンソースライセンスはプロプライエタリライセンスよりも制限が少ないですが、許可のレベルと範囲は種類によって異なります。一般的な種類のオープンソースライセンスをいくつか次に示します。
パブリックドメインライセンス
パブリックドメインライセンスは、誰でも制限なしにソフトウェアを変更、使用、商用化できることを示しています。ほとんどの場合、パブリックドメインのオープンソースソフトウェアの作成者は、そのソフトウェアの著作権を保護しないことを意図的または自発的に決定しています。
パーミッシブライセンス
パーミッシブオープンソースライセンスには、ソフトウェアを変更または配布する方法に関する最小限の要件が含まれています。このライセンスタイプの例としては、Apache License や Berkeley Source Distribution (BSD) ライセンスを挙げることができます。元のソフトウェアは著作権で保護されており、オープンソースですが、ユーザーは変更されたバージョンを商用化して再配布できます。
Lesser General Public License
Lesser General Public License (LGPL) を使用すると、オープンソースコンポーネントを制限なく使用できます。これらのコンポーネントは、多くの場合、ライブラリと呼ばれるコードモジュールとしてアクセスでき、任意のコードにプラグインして使用できます。アプリケーションで LGPL ソースコードを使用する場合、そのアプリケーションを商用化できます。ただし、既存の LGPL コードを変更した場合は、同じライセンスで再度配布する必要があります。
コピーレフトライセンス
- コピーレフトのオープンソースコンポーネントを変更する場合は、アプリケーションとともにすべての新しいソースコードをリリースする必要があります。ただし、アプリケーションを内部でのみ使用し、一般に公開しない場合は、これを行う必要はありません。
- GPL の変更を販売することはできますが、購入者は自己の選択に応じてそれらをさらに再配布できます。
- 新しいコードの著作権ステートメントでは、過去のすべてのコード作成者をクレジット表記する必要があります。
誰がオープンソースソフトウェアを規制しているのですか?
Open Source Initiative (OSI) は、あらゆる種類のオープンソースソフトウェアについて教育し、これらのソフトウェアを支持するグローバルな非営利組織です。標準化団体として、ソフトウェアをオープンソースにする条件を法的に定義するドキュメントである Open Source Definition のメンテナンスを行っています。
この組織の Open Source Definition に従うことで、OSI 承認のライセンス商標を取得できます。商標は信頼を生み出し、お客様に貢献し、協力することを他のユーザーに奨励します。OSI は、承認されたライセンスのリストのメンテナンスを行い、オープンソースコミュニティで新しいライセンスを承認します。また、ソフトウェアのオープン標準要件も規制しています。
オープン標準とは何ですか?
オープン標準は、テクノロジーの統一性と相互運用性をサポートするソフトウェア開発ルールです。これらは、実装、採用、更新のために自由に利用できます。その結果、これらのルールは、私たちの日常生活の多くの側面をより快適で便利にしてくれます。
例えば、標準は、あらゆるタイプのマシンが、あらゆるタイプのワイヤレスルーターに接続できるようにします。使用するルーターにかかわらず、ノートパソコンを使用して、自宅やお気に入りのカフェからインターネットに接続できます。標準がなければ、ご利用のノートパソコンと互換性のあるルーターを備えたカフェを見つける必要があります!
オープンソース vs. オープン標準
標準は、コード自体ではなく、特定のタイプのソースコードを記述するためのルール、ガイドライン、および仕様です。ソフトウェア標準は、オープンソースとして分類されるために特定のルールに従う必要があります。例えば、特定の標準を実装するためにプロプライエタリテクノロジーが必要な場合、それらの標準はオープンソースではありません。
オープンソースソフトウェアの商用バージョンが存在するのはなぜですか?
クリエイターや他の企業は、分析やセキュリティなど、規模が大きめの企業にとって魅力的なアドオンを販売することで、多くのオープンソースプロジェクトを収益化しています。民間企業は、これらのオープンソースプログラムをアプリケーションコードに含めることで、パブリックドメインのすべてのソフトウェアを商用化できます。また、異なるライセンスの下で同じソフトウェアの異なるバージョンをリリースすることもできます。
例えば、ある会社が General Public License (GPL) とプロプライエタリライセンスの両方の下でデータベース管理システムをリリースするとします。新しいコードをオープンソースにする限り、誰でもソフトウェア開発に GPL バージョンを使用できます。対照的に、プロプライエタリバージョンは次のような追加のソフトウェアサービスを提供します。
- フルマネージドデータベースサービス
- エンタープライズグレードのデータバックアップサービス
- 追加のセキュリティ暗号化
オープンソースソフトウェアはフリーソフトウェアと同じですか?
フリーソフトウェアという用語は、ソフトウェアユーザーのために一定の自由を獲得して保証することを目的とした、自由ソフトウェア運動とも呼ばれる社会運動をいいます。この運動は、ユーザーが次のことを自由に行えるようにするためのものです。
- ソフトウェアを実行します。
- ソフトウェアを研究します。
- ソフトウェアを変更します。
- ソフトウェアのコピーを共有します。
オープンソースソフトウェア vs. フリーソフトウェア
今日、フリーソフトウェアとは、パブリックドメインのオープンソースライセンスをいいます。オープンソースソフトウェアには、より多くの種類のライセンスが含まれるようになり、自由ソフトウェア運動とは異なり、ユーザーにある程度の制限を課すことができます。フリーウェアとフリーソフトウェアという用語は同じ意味で使用されているため、フリーソフトウェアをパブリックドメインソフトウェアと呼ぶ方が適切です。
オープンソースソフトウェア vs. フリーウェア
フリーウェアという用語は、商用製品ではあるが、期間限定で無料で利用できる製品を意味します。フリーウェアは、ある製品の無料試用版または機能が限定されているバージョンである場合もあります。この製品は、それ以外の場合はサブスクリプション料金が必要です。フリーウェアにアクセスできたとしても、いかなる態様においても、それを再販、共有、変更する権利はありません。
AWS はオープンソースソフトウェアにどのように貢献していますか?
AWS は、オープンソースはすべての人にとって良いものであると信じています。私たちは、オープンソースの価値をお客様に提供し、AWS の運用上の優秀性をオープンソースコミュニティにもたらすことに取り組んでいます。AWS のエンジニアは定期的にオープンソースソフトウェアを開発し、GitHub、Apache、Linux Foundation などの何千ものオープンソースコミュニティに貢献しています。当社がオープンソースをサポートする他のいくつかの方法は次のとおりです。
- 当社は、お客様がご希望のオープンソースソフトウェアをクラウドにデプロイして運用できるようにするために懸命に取り組んできました。AWS は、他のクラウドプロバイダーよりも幅広いオープンソーステクノロジーをサポートしています。
- オープンソースコミュニティにおいて、当社はいくつかの長期的なプロジェクトを有しています。当社は、これらのプロジェクトに対して、バグ修正、セキュリティ、スケーラビリティ、パフォーマンス、機能強化を継続的に提供しています。
- 当社は、HashiCorp から MongoDB、Confluent、Red Hat まで、主要なオープンソース企業と緊密に連携し、これらの企業がお客様の期待を超えるサポートを提供できるようサポートしています。
「 Open source at AWS」(AWS のオープンソース) で当社のオープンソースプロジェクトの詳細をご覧ください。また、 GitHub で 1,200 を超える Amazon 主導のオープンソースプロジェクトを詳しくご覧いただけます。
今すぐ 無料のアカウントを作成して、AWS でオープンソースを開始しましょう。