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 "Re: Linux GPL and binary module exception clause?". The Linux kernel COPYING
file does indeed have this preamble, right before the GPLv2:
NOTE! This copyright does not cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does not fall under the heading of "derived work".
What is the situation for user-space programs that use modified system call interfaces?
For instance, if I have:
- a user-space program that requires very specific constraints regarding the layout of the memory; and
- a purposefully modified version of the linux kernel that implements these constraints
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?
Does it make a difference if:
- the kernel modification is only used for that specific user-space program or if it is a widely used public patch?
- Does it make a difference if the kernel modification only modifies the implementation without modifying the interface?