web-dev-qa-db-ja.com

セミプロプライエタリソフトウェアはどのようにしてLinuxカーネルに基づくことができますか?

私が正しく理解していれば、LinuxカーネルはGPLの下でライセンスされています。つまり、誰かがそれに基づいている場合は、GPLの下で派生物全体のライセンスも取得する必要があり、誰でも自由に派生物を変更および/または再配布できます。

たとえば、すべてのAndroidリリースはLKに基づいています。これは、リリース全体とそのすべてのコンポーネントもGPLでリリースする必要があるという意味ではありませんか?

たとえば、ほとんどのAndroidリリースには独自のコンポーネントが付属しています。それはGPLに違反していませんか?派生物全体をGPLの下でリリースする必要はありませんか?

たとえば、Ubuntuでは、インストール後にMPEGコーデックをダウンロードする必要があります。これは、MPEGがプロプライエタリであり、MPEGのライセンスがGPLと互換性がないため、同じリリースに含めることができないためだと思いますか?

Androidリリースはこれをどのように回避しますか?

まず、GoogleのAndroidコードとLinuxカーネルコードが分離していることを明確にする必要があります。 Android自体はApacheLicense 2.0の下でライセンスされており、これは寛容であり、 Wikipedia の言葉で:

Apacheライセンスは、同じライセンスを使用して配布するために、ソフトウェアの派生物やオリジナルへの変更を必要としないという点で寛容です。

そのため、ベンダーによるAndroidの変更は通常利用できません。

第2に、GPLv2でライセンスされているLinuxカーネルの場合、コードは一般に公開され、デバイス内のどこかに埋め込まれているか(可能性は低い)、ベンダーのWebサイトのオープンソースコード専用のあいまいなページからダウンロードできます。彼らの製品。

ただし、公開されているLinuxカーネルコードには大きな注意点があります。独自のドライバーと同様の機能のカーネルモジュールです。 Linuxカーネルはプロプライエタリライセンスの下で配布されたバイナリブロブをロードでき、デバイスの実行に必要なそのようなブロブのソースコードは当然配布されません。要するに、デバイスに固有のカーネルソースを手に入れることができたとしても、それを使用して、機能している独自のLinuxベースのOSをコンパイルできるとは限りません。


許容的、文脈上

パーミッシブライセンスとはどういう意味ですか?あなたのコメントから、あなたはそれを他の許容的または独占的にライセンスされたソフトウェアを実行する能力を意味すると解釈したと思います。しかし、それは間違っています。

このコンテキストでの許容とは、ソースコードを使用して必要に応じて実行できることを意味します。

GPLは、GPLライセンスコードに加えた変更を公表する法的に拘束されているという意味で寛容ではありません。それはあなたが皆の貢献を取り、それを変更し(それを良くするか悪くするかに関係なく)そしてそれを隠すことを許可しません。バイナリを配布する場合は、ソースコードも配布する必要があります。 notはプライベートな変更を許可しないため、許容されません

ApacheライセンスとBSDライセンスは、パーミッシブライセンスの例です。厳密に非許容のGPLとは反対に、GPLの下でライセンスされているコードに変更を加えて自分自身に保持することができます。つまり、許容です。 )。つまり、Androidコードを取得できます。コードを認識できないように変更した場合でも、自由に自分で保持できます。そして、それはまさにAndroidデバイスベンダーが行っていることです。

9
Oxwivi