Frage

Da der Linux-Kernel ist GPL und LGPL nicht nehme ich an, dass es illegal ist, proprietären Code, um es zu verbinden. Wie funktioniert die Industrie circumvents das? Ich würde erwarten, dass die GPL-Lizenz jeden Entwickler zwingen wird unter dem GPL-Treiber und / oder Kernel-Modul zu lösen.

Vielleicht bin ich verwirrt und ein neues Modul implementiert, ist die Verknüpfung nicht wirklich gegen den Kernel-Code ??? Wie Unternehmen damit um? Vielleicht verbindet umgekehrt (von Kernel ihre Binärdateien)?

Auf der anderen Seite gibt es den BSD-Kernel. Wo sind Sie auf Link geschützt IP frei. Können Sie eine bessere Gestaltung der Umsetzung Ihrer Treiber in einem BSD-Kernel bekommen? Gibt es eine Design-Einschränkung, wenn Treiber für GPL-Kernel?

Umsetzung
War es hilfreich?

Lösung

Wie gesagt, Sie die BSD-Lizenz, wie durch den BSD-Kernel verwendet wird, ist viel liberaler, so dass es kein Problem Verbindung ist, was auch immer Module lizenziert es.

Für den Linux-Fall ist es richtig, dass der GPL per se verbietet die Verknüpfung von Nicht-GPL-kompatibelem Code, der würde erlaubt nicht zu Link in proprietärer Module oder sogar LGPL Module.

Doch die Linux-Copyright-Inhaber gewähren Sie Ihren „LGPL“ Modul mit einer beliebigen proprietären Code zu verknüpfen. Ein Beispiel dafür ist die nvidia-Treiber:

/------------.-\
| Kernel       |
|              |
|   /--------\ |
|   | Module | |     /-------------------\
|   | (LGPL) <========> proprietary code |
|   \--------/ |     \-------------------/
\--------------/

Das nach wie vor illegal wäre im Allgemeinen unter der GPL, ist aber explizit für die Linux-Kernel erlaubt Als Referenz sehen, was Linus Torvalds über das Thema zu sagen hat mich hier:.

http://linuxmafia.com/faq/Kernel/proprietary-kernel- modules.html

P. S. Die Verknüpfung ist ein symmetrischer Betrieb in den Bedingungen der GPL.

Andere Tipps

Es ist nicht die Handlung selbst zu verknüpfen, dass die GPL Einschränkungen aktiviert.

Es ist die Verteilung von einer „abgeleiteten Arbeit“ der GPL Arbeit, die die Einschränkungen aktiviert - Sie haben niemanden zu geben, sind Sie auf die „abgeleitete Arbeit“ auf den Quellcode benötigt die "neu erstellen abgeleitete Arbeit“.

Nun wird die Frage ein, wo die „abgeleitete Arbeit“ Linie gezogen wird - (! Und wird wahrscheinlich in verschiedenen Ländern unterschiedlich sein), die weit davon entfernt ist kristallklar. Zum Beispiel, wenn Sie einen kompilierten Linux-Kernel-Binärdatei mit Ihrem Code statisch gelinkt als Teil davon zu verteilen, ist es ziemlich klar, dass die ganze binäre eine „abgeleitete Arbeit“ ist. Auf der anderen Seite, wenn Sie verteilen nur Ihr Modul , dass Anwendungen nur „veröffentlichte Schnittstellen“ des Kernels, dann ist es wahrscheinlich keine „abgeleitete Arbeit“.

Es gibt viel Platz zwischen diesen beiden Positionen, though. Zum Beispiel, wenn Sie ein Gerät verteilen, den Flash-Speicher einen Linux-Kernel und einen kompilierte binären Treiber enthält enthält, ist den vollständigen Inhalt des Flash-Speicher eines „abgeleitete Arbeit“? Es sieht aus wie sicher es mir - aber unterschiedliche Meinungen, und nur endgültige Antwort wird kommen, wenn es vor Gericht getestet (und auch dann nur für die Zuständigkeit dieses Gerichts)

.

Ich kann nicht von Ihrer Frage sagen, aber Sie können denken über diese nach hinten sein. Wenn Sie einen proprietären Treiber unter Linux zu verwenden versuchen, dann ja, sollte dies erlaubt werden.

Es ist wahr, dass jeder Code, Links gegen GPL-ed-Code muss sich GPL-ed sein. GPL-ed-Code jedoch können Link gegen Closed-Source-Bibliotheken, ohne die Lizenz dieser Bibliotheken zu verändern (andernfalls wir jede Bibliothek in Existenz Open-Source einfach durch das Schreiben eines GPL-Programm und verbindet es machen könnte gegen die Bibliothek). Daher ist die GPL-ed Linux-Kernel können Link gegen den Closed-Source-Treiber ohne Probleme.

Das wird gesagt, erfordert dies, dass der Fahrer so geschrieben ist, dass es entweder vollständig in sich geschlossen ist oder Links nur gegen Bibliotheken, die uneingeschränkte Vernetzung ermöglichen (LGPL, MIT, usw.). Das bedeutet auch, dass Ihr Fahrer ein ladbares Kernel-Modul sein müßte und nicht statisch in den Kernel kompiliert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top