Wie kann semi-proprietäre Software auf dem Linux-Kernel basieren?


9

Wenn ich das richtig verstehe, ist der Linux-Kernel unter der GPL lizenziert. Wenn also jemand darauf basiert, muss er auch die gesamte abgeleitete Arbeit unter der GPL lizenzieren, sodass jeder seine abgeleitete Arbeit ändern und / oder weitergeben kann.

Beispielsweise basieren alle Android-Versionen auf dem LK. Bedeutet das nicht, dass die gesamte Version und alle ihre Komponenten auch unter der GPL veröffentlicht werden müssen?

Beispielsweise werden die meisten Android-Versionen mit proprietären Komponenten geliefert. Verstößt das nicht gegen die GPL? Muss nicht die gesamte abgeleitete Arbeit unter der GPL veröffentlicht werden?

Mit Ubuntu müssen Sie beispielsweise nach der Installation MPEG-Codecs herunterladen. Ich gehe davon aus, dass dies daran liegt, dass MPEG proprietär ist und die MPEG-Lizenz daher nicht mit der GPL kompatibel ist, sodass sie nicht in derselben Version enthalten sein können.

Wie umgehen Android-Versionen dies?


2
Die Kurzversion besagt, dass die "virale" Qualität der GPL nur auf abgeleitete Werke des Codes unter Lizenz wirken kann, und ein Benutzerland, das einen Kernel aufruft, macht es nicht zu einem abgeleiteten Werk des Kernels.
Tom Hunt

Ich sehe, der Kernel und die andere Software darüber haben separate Lizenzen, und die GPL erlaubt dies.
Revetahw sagt Reinstate Monica

Ich möchte auch hinzufügen, dass es meines Wissens einen ziemlich großen Unterschied zwischen GPL v2 und GPL v3 gibt und Linus weiterhin die GPL v2 verwendet, die freizügiger ist als letztere. Hier ein paar Informationen dazu. Die beiden besten Antworten scheinen ziemlich gut zu sein.
KGIII

Antworten:


9

Zunächst müssen Sie sich darüber im Klaren sein, dass Googles Android-Code und der Linux-Kernel-Code getrennt sind. Android selbst ist unter der zulässigen Apache-Lizenz 2.0 lizenziert, und in Wikipedia -Worten:

Die Apache-Lizenz ist insofern zulässig, als keine abgeleitete Arbeit der Software oder Änderungen am Original erforderlich sind, um mit derselben Lizenz verbreitet zu werden.

Daher werden normalerweise keine Android-Änderungen der Anbieter zur Verfügung gestellt.

Zweitens wird im Fall eines Linux-Kernels, der unter GPLv2 lizenziert ist, der Code für die Öffentlichkeit freigegeben, entweder irgendwo im Gerät vergraben (weniger wahrscheinlich) oder auf einer unbekannten Seite auf der Website des Anbieters zum Herunterladen für Open-Source-Codes in verfügbar ihre Produkte.

Der öffentlich verfügbare Linux-Kernel-Code weist jedoch eine große Einschränkung auf: proprietäre Treiber und Kernel-Module mit ähnlichen Funktionen. Der Linux-Kernel kann binäre Blobs laden, die unter einer proprietären Lizenz verteilt werden, und der Quellcode solcher Blobs, die zum Ausführen Ihres Geräts erforderlich sind, wird natürlich nicht verteilt. Fazit: Selbst wenn Sie es schaffen, die für Ihr Gerät spezifische Kernelquelle in den Griff zu bekommen, können Sie sie nicht unbedingt zum Kompilieren Ihres eigenen funktionierenden Linux-basierten Betriebssystems verwenden.


Zulässig im Kontext

Was genau verstehen wir unter einer zulässigen Lizenz ? Aus Ihren Kommentaren geht hervor, dass Sie die Fähigkeit verstanden haben, andere zulässige oder proprietär lizenzierte Software auszuführen. Das ist aber falsch

Zulässig bedeutet in diesem Zusammenhang, wie zulässig es ist, Sie mit dem Quellcode tun zu lassen, was Sie wollen.

GPL ist nicht zulässig in dem Sinne, dass Sie gesetzlich verpflichtet sind , Änderungen an einem GPL-lizenzierten Code zu veröffentlichen. Es erlaubt Ihnen nicht, den Beitrag aller zu nehmen, Änderungen daran vorzunehmen (unabhängig davon, ob Sie ihn verbessern oder verschlechtern) und ihn zu verstecken. Wenn Sie die Binärdatei verteilen möchten, müssen Sie auch den Quellcode verteilen. Da es sich nicht Sie private Änderungen erlauben, ist es daher nicht permissive .

Die Apache-Lizenz und die BSD-Lizenzen sind Beispiele für zulässige Lizenzen. Im Gegensatz zu einer streng nicht zulässigen GPL können Sie Änderungen an den unter ihnen lizenzierten Codes vornehmen und diese für sich behalten, mit anderen Worten, sie sind zulässig . Das heißt, Sie können den Android-Code übernehmen. Selbst wenn Sie ihn so weit ändern, dass er nicht mehr wiederzuerkennen ist, können Sie ihn selbst behalten. Und genau das tun Android-Gerätehersteller.


1
Nein. Dies liegt daran, dass Programme, die lediglich auf einem Kernel ausgeführt werden (und die Systemaufrufe des Kernels verwenden), keine Ableitungen des Kernels sind. Der Android-Userland-Code läuft lediglich auf dem Linux-Kernel.
Cas

1
@Fiksdal Linux-Kernel ist unter der GPL lizenziert, keine zulässige Lizenz. Sie können Android und die andere zulässige Software unter Linux genauso ausführen, wie Sie den proprietären Treiber von Nvidia auf Ihrem normalen PC verwenden können.
Oxwivi

1
@Fiksdal Oder ein besseres Beispiel wäre, Android führt proprietäre und zulässige Binärdateien unter Linux genauso aus wie Steam und Google Chrome.
Oxwivi

1
@Fiksdal, ja, es ist buchstäblich getrennt. Bedenken Sie Folgendes: Auf demselben Kernel können entweder Ubuntu oder andere reguläre Linux-Distributionen ausgeführt werden. Der Linux-Kernel ist genau das, ein Kernel. Es soll in der Lage sein, alle Arten von Programmen darüber auszuführen.
Oxwivi

1
@Fiksdal Ich habe die Antwort bearbeitet, schau sie dir an.
Oxwivi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.