Schlagen Sie vor, Treiber zu blockieren, die den Zugriff auf GPL-Aufrufe an den Linux-Kernel ermöglichen

Logo-Kernel Linux, Tux

Christoph Hellwig, Ein bekannter Linux-Kernel-Entwickler, der einst Mitglied des technischen Lenkungsausschusses der Linux Foundation war und in einem GPL-Rechtsstreit gegen VMware verklagt wurde.

Er hat vorgeschlagen, den Schutz zu verschärfen gegen das Binden proprietäre Treiber zu exportierten Linux-Kernel-Komponenten Nur für Module, die unter der GPL lizenziert sind.

Um Einschränkungen zu vermeiden um GPL-Symbole zu exportieren, proprietäre Controller-Hersteller verwenden ein Layer-Modul. deren Code Open Source ist und unter der GPLv2-Lizenz vertrieben wird, Die Funktionen beschränken sich jedoch darauf, den Zugriff des Eigentümer-Controllers auf APIs zu übergeben Kerneldateien, deren Verwendung direkt aus dem proprietären Code untersagt ist.

Um ein solches Manöver zu blockieren, Christoph Helwig hat Patches für den Linux-Kernel vorbereitet, die die Vererbung sicherstellen der Flags, die mit dem Export von GPL-Symbolen verbunden sind.

Wir haben seit dem ersten Tag einen Fehler in unserer _GPL-Modulauflösung gehabt.
Das heißt, ein Modul kann behaupten, GPL-lizenziert zu sein und _GPL-Exporte zu verwenden, während es sich auch auf Nicht-GPL-Modulsymbole stützt. Dies wird als Umgehung von _GPL-Exporten verwendet, indem ein kleines Shim-Modul verwendet wird, das _GPL-Exporte und andere Funktionen verwendet.

Der Vorschlag läuft darauf hinaus, den Indikator zu erben Taint_Proprietary_Module in allen Modulen, die Modulsymbole mit diesem Flag importieren.

Wenn ein GPL-Middle-Layer-Modul versucht, Symbole aus einem Nicht-GPL-Modul zu importieren, erbt das GPL-Modul daher das Tag TAINT_PROPRIETARY_MODULE und kann nicht auf die Kernel-Komponenten zugreifen, die nur für GPL-lizenzierte Module verfügbar sind, selbst wenn das Modul zuvor importiert wurde Symbole von "gplonly".

Hellwigs Patch versucht nun, dies zu erschweren. Module, die proprietäre Symbole importieren, sind als proprietär gekennzeichnet und haben keinen Zugriff auf GPL-Symbole. 

Die Änderung wurde als Reaktion auf eine Reihe veröffentlichter Patches vorgeschlagen von einem Facebook-Ingenieur mit der Implementierung eines neuen NetGPU-Subsystems, das den direkten Datenaustausch (Zero Copy DMA) zwischen der Netzwerkkarte und der GPU ermöglicht, während die Protokollverarbeitung durch die CPU durchgeführt wird.

Dies würde die ursprünglich von Jonathan Lemon geplante Methode vermeiden für Ihre Patches und würde die Entwicklung der Zwischenschichten machen, um das GPL-Symbol wegzulassen viel schwieriger sein, auch wenn es noch eine kleine Lücke gibt, wie angegeben.

In der Diskussion haben sie derzeit auch verschiedene Linux-Kernel-Entwickler Reverse Blocking wurde vorgeschlagen: Wenn ein Modul EXPORT_SYMBOL_GPL-Symbole importiert, sollten die von diesem Modul exportierten Symbole nicht von Modulen importiert werden, die keine explizite GPL-Kompatibilität beanspruchen.

Diejenigen ohne Modul importieren EXPORT_SYMBOL_GPL-Symbole. Alle exportierten Symbole sollten als EXPORT_SYMBOL_GPL behandelt werden.

Christoph Helwig schrieb, dass er diesem Vorschlag zu 100% zustimmt, Linus Torvalds wird diese Änderung jedoch nicht verpassen, da die meisten Kernel-Subsysteme für proprietäre Treiber nicht verfügbar sind, da bei der Entwicklung von Treibern die Basissymbole unter der GPL exportiert werden

Die Entwickler waren mit der Verfügbarkeit der Implementierung nur für die proprietären NVIDIA-Treiber über die von diesen Treibern bereitgestellte GPL-Schicht nicht zufrieden.

Als Reaktion auf Kritik, Der Autor des Patches gab an, dass das Subsystem nicht mit NVIDIA verbunden ist und seine Unterstützung kann unter anderem für Softwareschnittstellen für AMD- und Intel-GPUs bereitgestellt werden.

Infolgedessen wurde die Förderung von netgpu im Kernel als unmöglich angesehen, bis Arbeitsunterstützung auf der Basis von kostenlosen Treibern wie AMDGPU, Intel i915 oder Nouveau verfügbar war.

Das muss man sich in der Vergangenheit merkenhat die Linux-Kernel-Community eine Vielzahl von Änderungen implementiert das wissentlich oder als Nebeneffekt, haben die Entwicklung von proprietären Modulen behindert oder nicht kompatibel mit Lizenzen.

Schließlich wenn Sie mehr darüber wissen wollenkönnen Sie die Details überprüfen, indem Sie gehen auf den folgenden Link.

Quelle: https://lkml.org/


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Christian sagte

    Vielleicht wäre es besser, den Artikel auf Englisch zu verfassen, als einen Übersetzer zu verwenden. Es gibt viele Teile, die für mich unverständlich sind.