Lizenzbedingungen

Linux wird unter der GNU General Public License (GPL) lizenziert, einem Dokument, das für das GNU-Projekt der Free Software Foundation entwickelt wurde. Die GPL erlaubt es jedem, ein Produkt unter der GPL weiterzuvertreiben und auch unter der GPL lizenzierte Programme zu verkaufen, sofern der Empfänger eine genaue Kopie der Binärdateien aus den Quellen bauen darf. Außerdem muß auch jedes Software-Produkt, das von einem unter der GPL stehenden Produkt abgeleitet ist, wieder unter der GPL stehen.

Das Hauptziel einer solchen Lizenz ist es, das allgemeine Wissen zu vergrößern, indem jeder die Programme nach Belieben verändern darf, und daß gleichzeitig Leute, die Software verkaufen, noch ihrer Arbeit nachgehen können. Trotz dieser einfachen Ziele hält die Diskussion über die GPL und ihre Verwendung noch an. Falls Sie die Lizenz lesen wollen, können Sie sie an verschiedenen Stellen in Ihrem System finden, unter anderem im Verzeichnis /usr/src/linux in der Datei COPYING.

Eigene Module und Module Dritter sind kein Bestandteil des Linux-Kernels, und Sie sind daher nicht verpflichtet, diese unter der GPL freizugeben. Ein Modul benutzt den Kernel über eine wohldefinierte Schnittstelle, ist aber kein Bestandteil davon, ähnlich wie Benutzerprogramme den Kernel über Systemaufrufe benutzen. Beachten Sie, daß diese Ausnahme von der GPL-Lizenzierung nur für Module gilt, die ausschließlich die veröffentlichte Modul-Schnittstelle verwenden. Module, die tiefer in den Kernel eingreifen, fallen unter die Klausel über “abgeleitete Arbeiten” in der GPL.

Zusammengefaßt: Wenn Ihr Code in den Kernel aufgenommen wird, müssen Sie ihn unter die GPL stellen. Wenn Sie Ihre Veränderungen nur selbst verwenden, greift die GPL noch nicht, aber wenn Sie Ihren Code an andere weitergeben, müssen Sie den Quellcode in der Distribution mitliefern — Leute, die sich Ihr Paket besorgen, müssen in den Lage sein, die Binärdateien beliebig neu zu kompilieren. Wenn Sie aber andererseits ein Modul schreiben, dürfen Sie es auch in binärer Form vertreiben. Dies ist aber nicht immer besonders praktisch, weil Module im allgemeinen für die jeweilige Kernel-Version, mit der sie verwendet werden sollen (siehe dazu Kapitel 2, Abschnitt “the Section called Versionsabhängigkeit in Kapitel 2” und Kapitel 11, Abschnitt “the Section called Versionskontrolle in Modulen in Kapitel 11”), neu übersetzt werden sollten. Neue Kernel-Versionen — selbst kleinere stabile Versionen — funktionieren oft nicht mehr mit kompilierten Modulen, was ein Neukompilieren erforderlich macht. Linus Torvalds hat öffentlich erklärt, daß er mit diesem Verhalten kein Problem hat und daß binäre Module nur unter dem Kernel sicher arbeiten, unter dem sie kompiliert wurden. Als Modul-Autor sind Sie Ihren Anwendern besser behilflich, wenn Sie den Quellcode verfügbar machen.

Der größte Teil des Codes in diesem Buch kann als Quellcode und in binärer Form frei weitergegeben werden; weder der O‘Reilly Verlag noch wir haben Lizenzrechte an daraus abgeleitetem Code. Alle Programme sind (in der ursprünglichen englischen Version) per FTP von ftp.oreilly.de/pub/examples/linux/drivers/ erhältlich, die genauen Lizenzbedingungen stehen in der Datei LICENSE im gleichen Verzeichnis.

Wenn Beispielprogramme Teile des Kernel-Codes enthalten, schlägt aber wieder die GPL zu: Die Kommentare zu den Quelltexten geben jeweils genau an, was Sache ist. Das trifft aber nur auf einige wenige Quelldateien zu, die nur am Rande mit dem Thema dieses Buches zu tun haben.