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


9

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

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

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

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

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


2
短いバージョンは、GPLの「バイラル」品質はライセンスの下でコードの派生物にのみ作用することができ、カーネルを呼び出すユーザーランドはそれをカーネルの派生物にすることはありません。
トム・ハント

カーネルとその上にある他のソフトウェアには個別のライセンスがあり、GPLではこれを許可しています。
Revetahwは、モニカを2015

私も理解したいのですが、GPL v2とGPL v3の間にはかなり大きな違いがあり、Linusは後者よりも寛容なGPL v2を使い続けています。ここでは、この上の情報のビットです。上位2つの回答はかなり良いようです。
KGIII 2015年

回答:


9

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

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

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

次に、GPLv2の下でライセンスされているLinuxカーネルの場合、コードは一般にリリースされ、デバイス内のどこかに埋め込まれている(可能性が低い)か、ベンダーのWebサイトのあいまいなページからダウンロードして、彼らの製品。

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


状況に応じて許容

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

この文脈での許容とは、ソースコードを好きなように実行させることがどれほど許容されるかを意味します。

GPLは、GPLライセンスのコードに加えた変更を公表することが法的に義務付けられているという意味では、許容されません。それはあなたがみんなの貢献を取り、それを変更し(それをより良くも悪くもしなくても)そしてそれを隠すことを許しません。バイナリを配布する場合は、ソースコードも配布する必要があります。それがないためではない民間の変更を行うことが、あなたを許すことは、そのためである寛容ではありません

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


1
番号。これは、単にカーネルで実行されているプログラム(およびカーネルのsyscallsを利用するプログラム)がカーネルの派生物ではないためです。Androidユーザーランドのコードは、Linuxカーネル上でのみ実行されます。
cas

1
@Fiksdal LinuxカーネルはGPLに基づいてライセンスされており、許可ライセンスではありません。通常のPCでNvidiaの専用ドライバーを使用するのと同じ方法で、LinuxでAndroidやその他の寛容なソフトウェアを実行できます。
Oxwivi、2015年

1
@Fiksdalまたはもっと良い例は、Androidは、SteamやGoogle Chromeを実行できるのと同じ方法で、Linux上で独自仕様の寛容なバイナリを実行することです。
Oxwivi、2015年

1
@Fiksdal、はい、文字通り別です。これを考慮してください。同じカーネルでUbuntuまたは他の通常のLinuxディストリビューションを実行できます。Linuxカーネルはまさにカーネルです。それはその上であらゆる種類のプログラムを実行できることを意味します。
Oxwivi、2015年

1
@Fiksdal回答を編集しました。確認してください。
Oxwivi、2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.