From: Ingo Molnar <mingo@redhat.com>
To: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Keith Owens <kaos@ocs.com.au>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
Andrea Arcangeli <andrea@suse.de>,
Arjan van de Ven <arjanv@redhat.com>,
Hugh Dickins <hugh@veritas.com>,
Stelian Pop <stelian.pop@fr.alcove.com>,
Linus Torvalds <torvalds@transmeta.com>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2.5.5] do export vmalloc_to_page to modules...
Date: Thu, 4 Apr 2002 08:26:50 -0500 (EST) [thread overview]
Message-ID: <Pine.LNX.4.44.0204040747260.25330-100000@devserv.devel.redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.33.0204041245340.1475-100000@einstein.homenet>
On Thu, 4 Apr 2002, Tigran Aivazian wrote:
> [...] Namely, in the sense that it is inconsistent with the similar
> situation in the case of libraries or even system calls. I don't see why
> exporting kernel symbols should be so radically different and extremely
> sensitive to the nature of the consumer's license for some symbols but
> not for others...
Tigran, the difference is very very fundamental, please think about it,
and please try to ignore the fact that you are working for Veritas.
Internal modules of the GPL kernel are just a technical modularization of
a complete and unified GPL-ed work. We want it to stay consistent, we want
*our* work to be fully and completely debuggable, supportable and we want
to be able to understand and develop any part of it. This is our intent.
the moment you start to argue 'but why cannot we just add this set of
EXPORTs and put our binary-only modules here and there' you are in essence
questioning our freedom to specify the license of our work. You are
abusing the internal modularization mechanizm to put in code that we
cannot debug, cannot read and cannot develop and cannot support in any
reasonable way. It's like exchanging kernel/sched.o with your binary-only
implementation and not publishing the source code of it. If you want to
play such games then you have to implement the other 4 million lines as
well, nobody prevents you to do that.
system calls are a published, honored, maintained interface. User-space
applications are indpendent works not derived from the GPL-ed kernel in
any way. Hence the exception.
historically we have also chosen to to provide a different type of API
towards more or less clearly separate works, like independently developed,
non-GPL hardware drivers. Let yourself not be confused by the fact that
the same technical mechanizm is also used to demand-link separate smaller
parts of the kernel work as well.
The impact of binary-only modules on the kernel's development architecture
is not zero but not overly significant either, so most of us are pretty
pragmatic about that, as long as binary-only module vendors are not
abusing this mechanizm to impact the integrity of the kernel and create
clearly derived works without obeying the rules of the GPL. And it's clear
that internal symbols are just that: internal, still part of the kernel
work. [and directly resulting from that, they obey the GPL.]
I consider 'abuse' for example a kernel derivative with a 'modified'
scheduler. The day it will be possible to put a binary-only sched.o into
the kernel i'll stop doing Linux. I am not here to develop some 'lite'
version of the OS, where all the interesting stuff happens behind closed
doors. I'm not here either to see the quality of the OS degrade due to
sloppy programming in widely used binary-only modules, without being able
to fix it.
The GPL right now protects our work from being abused in such a way - it's
illegal to provide a binary-only sched.o and compile a kernel product from
that, because the resulting kernel is still one work and the whole work
must still be under the GPL. It's equally illegal to recover the location
of sched.o in the final kernel image and runtime relink it with a
binary-only sched.o. It's equally illegal to accomplish the same over the
internal module interface.
Think about it, every separate .o in the Linux kernel can be equivalently
expressed in terms of a EXPORT-ed module interface, GPL-ed header files
and a closed-source module. There is a good reason why the GPL forbids
such freely defined 'module interfaces' to be added. Think of the GPL as
the price you pay for being able to use the Linux kernel's source code or
being allowed to link to it - you are not forced in any way to do that.
and no, you have no *right* to link a binary-only sched.o to the Linux
kernel - even if you develop a sched.c 'separately' - and intuitively feel
that it's somehow a separate work, the end result is still a derivative of
the kernel. And this violation of the license is illegal in most
countries, it's even a crime in some countries.
Ingo
next prev parent reply other threads:[~2002-04-04 13:28 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-20 13:13 [PATCH 2.5.5] do export vmalloc_to_page to modules Stelian Pop
2002-02-20 16:00 ` Hugh Dickins
2002-02-20 16:01 ` Arjan van de Ven
2002-04-03 16:21 ` Andrea Arcangeli
2002-04-03 17:43 ` Alan Cox
2002-04-03 18:13 ` Andrea Arcangeli
2002-04-03 19:11 ` Alan Cox
2002-04-03 19:23 ` Andrea Arcangeli
2002-04-03 20:05 ` Tigran Aivazian
2002-04-03 20:27 ` Tigran Aivazian
2002-04-03 21:22 ` Alan Cox
2002-04-03 21:26 ` Tigran Aivazian
2002-04-03 21:48 ` Alan Cox
2002-04-03 19:03 ` Tigran Aivazian
2002-04-03 19:10 ` Linus Torvalds
2002-04-03 19:19 ` Tigran Aivazian
2002-04-03 19:24 ` Linus Torvalds
2002-04-03 21:05 ` Tigran Aivazian
2002-04-03 21:25 ` Alan Cox
2002-04-04 6:43 ` Keith Owens
2002-04-04 10:22 ` Tigran Aivazian
2002-04-04 10:35 ` Arjan van de Ven
2002-04-04 11:54 ` Alan Cox
2002-04-04 12:01 ` Tigran Aivazian
2002-04-04 12:31 ` Adrian Bunk
2002-04-04 12:48 ` Russell King
2002-04-04 12:40 ` Russell King
2002-04-04 12:46 ` Tigran Aivazian
2002-04-05 7:29 ` David Schwartz
2002-04-05 8:24 ` Adrian Bunk
2002-04-05 8:28 ` David Schwartz
2002-04-04 13:26 ` Ingo Molnar [this message]
2002-04-04 15:21 ` Rik van Riel
2002-04-05 9:25 ` Paul Gortmaker
2002-04-04 15:35 ` Tigran Aivazian
2002-04-04 16:55 ` Andrea Arcangeli
2002-04-04 17:16 ` Christoph Hellwig
2002-04-04 17:46 ` Ingo Molnar
2002-04-04 17:59 ` Arjan van de Ven
2002-04-04 18:15 ` Rik van Riel
2002-04-05 0:47 ` Linux kernel and binary drivers (was: [PATCH 2.5.5] do export vmalloc_to_page to modules...) Steffen Persvold
2002-04-04 15:55 ` [PATCH 2.5.5] do export vmalloc_to_page to modules Richard B. Johnson
2002-04-04 16:14 ` Alan Cox
2002-04-04 16:15 ` Peter Horton
2002-04-04 16:23 ` Ingo Molnar
2002-04-04 16:38 ` Michael Clark
2002-04-04 20:57 ` Adrian Bunk
2002-04-04 16:44 ` Andrea Arcangeli
2002-04-04 17:16 ` Ingo Molnar
2002-04-04 18:00 ` Alan Cox
2002-04-04 16:42 ` Alexander Viro
2002-04-03 19:29 ` Andrea Arcangeli
2002-04-03 19:38 ` Alan Cox
2002-04-03 19:25 ` Linus Torvalds
2002-04-03 19:44 ` Alan Cox
2002-04-03 19:39 ` Linus Torvalds
2002-04-03 20:35 ` Gerd Knorr
2002-04-03 22:17 ` Richard B. Johnson
2002-04-03 22:24 ` Rik van Riel
2002-04-03 22:33 ` Tigran Aivazian
2002-04-03 22:35 ` David S. Miller
2002-04-06 9:08 ` David Woodhouse
2002-04-03 22:39 ` Rik van Riel
2002-04-04 5:59 ` Chris Wedgwood
2002-04-04 12:06 ` Alan Cox
2002-04-04 9:33 ` Ingo Molnar
2002-04-03 19:26 ` Andrea Arcangeli
2002-04-03 19:35 ` Alan Cox
2002-04-05 6:06 ` David Schwartz
2002-04-05 12:48 ` Alan Cox
2002-04-05 18:46 ` David Schwartz
2002-04-05 19:27 ` Alan Cox
2002-04-05 20:05 ` David Schwartz
2002-04-06 17:55 ` Alan Cox
2002-04-03 19:19 ` Alexander Viro
2002-04-03 21:07 ` David Schwartz
2002-04-03 21:33 ` Alan Cox
2002-04-03 21:28 ` Daniel Jacobowitz
2002-04-03 22:09 ` David Schwartz
2002-04-04 6:26 ` Kai Henningsen
2002-04-04 8:44 ` Adrian Bunk
2002-04-04 12:01 ` Alan Cox
2002-02-20 16:27 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2002-04-03 23:47 Petr Vandrovec
2002-04-04 0:19 ` Rik van Riel
2002-04-04 11:54 Petr Vandrovec
[not found] <Pine.LNX.4.44L.0204041217290.18660-100000@imladris.surriel .com>
2002-04-04 16:11 ` Anton Altaparmakov
2002-04-04 16:29 ` Ingo Molnar
[not found] <Pine.LNX.4.44.0204041123410.6422-100000@devserv.devel.redh at.com>
2002-04-04 17:06 ` Anton Altaparmakov
2002-04-04 17:55 ` Alan Cox
2002-04-04 17:52 ` Anton Altaparmakov
2002-04-04 17:27 Nicholas Berry
2002-04-05 13:22 Gareth Hughes
2002-04-09 6:55 Rick A. Hohensee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.44.0204040747260.25330-100000@devserv.devel.redhat.com \
--to=mingo@redhat.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andrea@suse.de \
--cc=arjanv@redhat.com \
--cc=hugh@veritas.com \
--cc=kaos@ocs.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=stelian.pop@fr.alcove.com \
--cc=tigran@aivazian.fsnet.co.uk \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox