gpl
Are user-space programs designed for modified Linux kernels considered derived works under GPLv2?
<p>The Linux kernel is distributed under the GPLv2 and it seems generally accepted that "user-space programs that use the standard
system call interfaces aren't considered derived works" as stated by Linus Torvald on <a href="http://yarchive.net/comp/linux/gpl_modules.html" rel="nofollow noreferrer">"Re: Linux GPL and binary module exception clause?"</a>. The <a href="https://www.kernel.org/pub/linux/kernel/COPYING" rel="nofollow noreferrer">Linux kernel <code>COPYING</code> file</a> does indeed have this preamble, right before the GPLv2:</p>

<blockquote>
  <p>NOTE! This copyright does <em>not</em> cover user programs that use kernel
   services by normal system calls - this is merely considered normal use
   of the kernel, and does <em>not</em> fall under the heading of "derived work".</p>
</blockquote>

<p>What is the situation for user-space programs that <strong>use modified system call interfaces</strong>?</p>

<p>For instance, if I have:</p>

<ul>
<li>a user-space program that requires very specific constraints regarding the layout of the memory; and</li>
<li>a purposefully modified version of the linux kernel that implements these constraints</li>
</ul>

<p>Can I still distribute the user-space program under a proprietary license along the modified kernel (under GPLv2)? Or is this a situation where the modification of the kernel implicitly creates a dependency that turn the the combination of the user-space program with the modified kernel into derived work?</p>

<p>Does it make a difference if:</p>

<ul>
<li>the kernel modification is only used for that specific user-space program or if it is a widely used public patch?</li>
<li>Does it make a difference if the kernel modification only modifies the implementation without modifying the interface?</li>
</ul>

<p>Oversimplifying a lot, the test of whether something is a derivative work of another work is first whether it itself contains sufficient new protectable expression to be a work at all and second whether it also contains sufficient protected expression from that other work to be considered derivative.</p>

<p>You have said that the constraints and modifications to the Linux kernel are authored by the same party as the user space tool. So in your example, there's probably no problem because the only protected expression the user space work could be taking is the changes to the Linux kernel, and those were authored by the same person as the user space work.</p>

<p>There's only a problem if you take significant protected expression into your work and that work is only available to you under a license like the GPLv2 that imposes requirements.</p>

<p>So all you're doing that other programs don't do is this:<br>
Linux &lt;-> Kernel Mods &lt;-> Program</p>

<p>Here, the kernel mods are clearly a derivative work of the Linux kernel. But they comply with the GPL. The program contains protectable expression from the kernel mods, but you hold the copyright to the kernel mods, so you can't infringe on their copyright.</p>
