LinuxWorld
Subscribe to this site with RSS

Encouraging closed source modules part 2: law and the module interface

Where do you draw the line between what's part of a GPL-covered work and what isn't? Does NVIDIA need to tap-dance around the GPL to get a proprieary module into the kernel, or is there an easier approach?

This is part two in a three-part series of articles debunking some common myths about the GPL’s reach and highlighting the sensible solution that the Linux community has constructed despite these myths. This part applies the body of court cases to the GPL, outlining the framework of the “gentleman’s agreement” struck by commercial and non-commercial Linux developers.

Obviously, the highest levels of abstraction in the court’s current test provide very little copyright protection for Linux kernel modules. Linux creator Linus Torvalds suggested “when you have the GPL, and you have documented for years and years that [the kernel module interface] is not a stable API, and that it is not a boundary for the license and that you do not get an automatic waiver when you compile against this boundary, then things are different [than with a stable API].” At the same time, Torvalds focused on how today’s kernel modules are “used for pretty much everything, including stuff that is very much ‘internal kernel’ stuff,” destroying “the kind of historic ‘implied barrier’” between the GPL-licensed kernel and supporting modules. Torvalds argues “there are cases where something would be so obviously Linux-specific that it simply wouldn't make sense without the Linux kernel. In those cases it would also obviously be a derived work, and as such . . . it falls under the GPL license.” The level of integration required, in essence, could render a kernel module’s source code useless for other software platforms.

In Sega Enterprises, Ltd. v. Accolade, Inc., the court denied copyright protection for “functional requirements for compatibility with the Genesis console . . . .” Under this approach, the right of the kernel module author to create a compatible module overrides any nominal copyright infringement created when that author creates static or dynamic links to kernel code. Sega’s Genesis console had no public API whatsoever, stable or otherwise, yet the court still denied protection to these functional elements. Regardless of the status of the API or system interface required for compatibility, any parts of a program that a developer must copy — such as kernel headers, definition files, variables, or mandatory Linux kernel function calls — in order to create a Linux-compatible kernel module would not receive copyright protection.

React: Give us your thoughts on the issues here.
Use this form to start a public discussion with other Linux World users on this article.
Log In | Register for an account (Why you should)

Note: Register to have your user name appear; otherwise your comment will show up as "Anonymous."

*Anonymous comments will only appear once they are approved by the moderator.

Newsletter sign-up

Sign up for one of Network World's newsletters compliments of Linux World

Linux & Open Source News Alert
Web Applications Alert
Video & Podcast Alert
Security: Threat  Alert
Virtualization Alert

Email Address: