Position Statement on Linux Kernel Modules

Submitted by Jeremy
on June 23, 2008 - 12:27pm

"As part of the Linux Foundation Technical board, we confront the issue of closed source Linux kernel modules all the time, and we wanted to do something that could be seen as a general 'public statement' about them that is easy to understand and point to when people have questions," began Greg KH, explaining, "so, after working on this for a while, and asking some of the other major contributors and maintainers of the kernel, what we have is below." a FAQ on the Linux Foundation website provides more background on the statement, which was undersigned by nearly 140 Linux kernel hackers. The statement reads:

"We, the undersigned Linux kernel developers, consider any closed-source Linux kernel module or driver to be harmful and undesirable. We have repeatedly found them to be detrimental to Linux users, businesses, and the greater Linux ecosystem. Such modules negate the openness, stability, flexibility, and maintainability of the Linux development model and shut their users off from the expertise of the Linux community. Vendors that provide closed-source kernel modules force their customers to give up key Linux advantages or choose new vendors. Therefore, in order to take full advantage of the cost savings and shared support benefits open source has to offer, we urge vendors to adopt a policy of supporting their customers on Linux with open-source kernel code."


From: Greg KH <greg@...>
Subject: [ANNOUNCE] Position Statement on Linux Kernel Modules
Date: Jun 23, 1:01 am 2008

Hi,

As part of the Linux Foundation Technical board, we confront the issue
of closed source Linux kernel modules all the time, and we wanted to do
something that could be seen as a general "public statement" about them
that is easy to understand and point to when people have questions.

So, after working on this for a while, and asking some of the other
major contributors and maintainers of the kernel, what we have is below.

There is also a site at:
http://www.linuxfoundation.org/en/Device_driver_statement
that contains a link to a statement from the Linux Foundation about this
topic, as well as some more descriptions and background information, and
a copy of the full statement as well.

I've also put a pretty pdf version at:
http://www.kernel.org/pub/linux/kernel/people/gregkh/lkm_position_statem...
in case people want to print it out :)

If there are any kernel developers who want to add their names to this
statement, please let me know by private email and I will be glad to add
it.

thanks,

greg k-h

------------------------------

Position Statement on Linux Kernel Modules
June 2008

We, the undersigned Linux kernel developers, consider any closed-source
Linux kernel module or driver to be harmful and undesirable. We have
repeatedly found them to be detrimental to Linux users, businesses, and
the greater Linux ecosystem. Such modules negate the openness,
stability, flexibility, and maintainability of the Linux development
model and shut their users off from the expertise of the Linux
community. Vendors that provide closed-source kernel modules force
their customers to give up key Linux advantages or choose new vendors.
Therefore, in order to take full advantage of the cost savings and
shared support benefits open source has to offer, we urge vendors to
adopt a policy of supporting their customers on Linux with open-source
kernel code.

We speak only for ourselves, and not for any company we might work for
today, have in the past, or will in the future.

Dave Airlie
Jens Axboe
Ralf Baechle
Arnd Bergmann
Vitaly Bordug
James Bottomley
Josh Boyer
Neil Brown
Mark Brown
David Brownell
Michael Buesch
Franck Bui-Huu
Adrian Bunk
Ralph Campbell
Mauro Carvalho Chehab
Denis Cheng
Jonathan Corbet
Glauber Costa
Alan Cox
Magnus Damm
Ahmed S. Darwish
Robert P. J. Day
Helge Deller
Jean Delvare
Mathieu Desnoyers
Alexey Dobriyan
Daniel Drake
Alex Dubov
Randy Dunlap
Michael Ellerman
Jan Engelhardt
Mark Fasheh
J. Bruce Fields
Larry Finger
Jeremy Fitzhardinge
Mike Frysinger
Kumar Gala
Robin Getz
Liam Girdwood
Thomas Gleixner
Brice Goglin
Cyrill Gorcunov
Andy Gospodarek
Thomas Graf
Harvey Harrison
Stephen Hemminger
Michael Hennerich
Tejun Heo
Benjamin Herrenschmidt
Kristian Høgsberg
Henrique de Moraes Holschuh
Marcel Holtmann
Mike Isely
Takashi Iwai
Olof Johansson
Dave Jones
Jesper Juhl
Matthias Kaehlcke
Kenji Kaneshige
Jan Kara
Jeremy Kerr
Russell King
Olaf Kirch
Roel Kluin
Hans-JÃŒrgen Koch
Auke Kok
Jiri Kosina
Mariusz Kozlowski
Greg Kroah-Hartman
Michael Krufky
Aneesh Kumar
Clemens Ladisch
Christoph Lameter
Grant Likely
John W. Linville
Yinghai Lu
Tony Luck
Pavel Machek
Matt Mackall
Roland McGrath
Patrick McHardy
Kyle McMartin
Paul Menage
Thierry Merle
Eric Miao
Akinobu Mita
Ingo Molnar
Andrew Morton
Paul Mundt
Oleg Nesterov
Luca Olivetti
Pierre Ossman
Venkatesh Pallipadi
Nick Piggin
Nicolas Pitre
Richard Purdie
Mike Rapoport
Sam Ravnborg
Gerrit Renker
Stefan Richter
David Rientjes
Stefan Roese
Francois Romieu
Stephen Rothwell
Maciej W. Rozycki
Mark Salyzyn
Yoshinori Sato
Holger Schurig
Yoshihiro Shimoda
Sergei Shtylyov
Kay Sievers
Alexey Starikovskiy
Alan Stern
Hirokazu Takata
Eliezer Tamir
Doug Thompson
FUJITA Tomonori
Dmitry Torokhov
Marcelo Tosatti
Steven Toth
Theodore Tso
Geert Uytterhoeven
Arjan van de Ven
Ivo van Doorn
Wim Van Sebroeck
Hans Verkuil
Anton Vorontsov
Daniel Walker
Dan J. Williams
Darrick J. Wong
David Woodhouse
Chris Wright
Bryan Wu
Rafael J. Wysocki
Herbert Xu
Vlad Yasevich
Peter Zijlstra
Bartlomiej Zolnierkiewicz

--

From: Greg Louis <glouis@...>
Subject: Re: [ANNOUNCE] Position Statement on Linux Kernel Modules
Date: Jun 23, 7:29 am 2008

On 20080622 (Sun) at 2201:18 -0700, Greg KH wrote:
>
> If there are any kernel developers who want to add their names to this
> statement, please let me know by private email and I will be glad to add
> it.
>
> Position Statement on Linux Kernel Modules
> June 2008
>
> We, the undersigned Linux kernel developers...

Do you think it might be a good idea to start a similar list, in the
form of a petition to manufacturers, for end users? The hope would be
that the number of petitioners grow big enough to let us effectively
rebut the argument that nobody outside the developer community really
cares.

(Of course, the best way to rebut that argument would be for end-users
to vote with their feet, but for a lot of us, me included, that's not a
practical option.)

--
| G r e g L o u i s | gpg public key: 0x6D9E3E64 |
| http://www.bgl.nu/~glouis | (on my website or any keyserver) |
--


From: Willy Tarreau <w@...> Subject: Re: [ANNOUNCE] Position Statement on Linux Kernel Modules Date: Jun 23, 9:09 am 2008

On Mon, Jun 23, 2008 at 07:29:34AM -0400, Greg Louis wrote:
> On 20080622 (Sun) at 2201:18 -0700, Greg KH wrote:
> >
> > If there are any kernel developers who want to add their names to this
> > statement, please let me know by private email and I will be glad to add
> > it.
> >
> > Position Statement on Linux Kernel Modules
> > June 2008
> >
> > We, the undersigned Linux kernel developers...
>
> Do you think it might be a good idea to start a similar list, in the
> form of a petition to manufacturers, for end users? The hope would be
> that the number of petitioners grow big enough to let us effectively
> rebut the argument that nobody outside the developer community really
> cares.
>
> (Of course, the best way to rebut that argument would be for end-users
> to vote with their feet, but for a lot of us, me included, that's not a
> practical option.)

The problem is exactly what you describe in your last sentence. Hardware
manufacturers are well aware of that and make no effort to provide correct
drivers when they (think they) have a monopoly in certain areas.

What would be needed would be a public list of alternative hardware for
known existing hardware. When big manufacturers will see their hardware
listed there in the "bad" column, with their small competitors on the
same line in the "good" column and with a lower price, they may start
to think a little bit. Also, small manufacturers could use this for
marketting purposes, because they would be listed as direct competitors
for other well-established products.

It should be made with notebooks too. It's a shame to see how you're
nearly forced to have an nvidia graphics card in a notebook nowadays.
It is needed to put a bad reputation to products which embed closed
hardware, and to give a good one to other ones.

If such a list is exhaustive and public, it may become a reference for
new buyers.

Willy

--

From: Matthew <jackdachef@...>
Subject: Re: [ANNOUNCE] Position Statement on Linux Kernel Modules
Date: Jun 23, 9:02 am 2008

Hi Greg,

I largely agree to this statement,

there are however some downsides if you're preventing driver
manufacturers (e.g. nvidia, ...) from the possibility to offer their
customers proprietary drivers:

1) One big and important point for me (and more and more future
linux-users) is powersaving features on GPUs like powermizer (by
nvidia) and powerplay (by AMD/ATI) or other hardware. I haven't seen
this working on newer graphics cards models with the opensource
drivers to the present day :(

Take an example with laptops: where with the proprietary drivers it is
possible to work 6 hours of uptime, you'll only get 1.5 hours of
battery time on laptops; additionally / or on desktops you'll be
getting a fan which will always run on the highest velocity,
considering the big generation of heat on your lap and you're getting
a very uncomfortable work device.
Isn't this also at odds with the green direction linux is heading
towards right now?

This surely also applies to manufacturers of future linux-powered
devices such as handsets (cell phones), routers, etc etc
if those companies can't use their own closed proprietary drivers
utilizing patented routines they are "forced" to use, they might think
over it and switch to another operating system ...

2) How will this affect performance, if all of those drivers are
limited to an user-space interface?

I'm not a kernel hacker and don't have much insight into the kernel
and kernel-development, so I can only reflect, what I've read:
much of you kernel hackers are supposed to have said (read that on
blogs, forums etc.) that nvidia's drivers are hackish and that it uses
routines which shouldn't be used by this kind of drivers

other voices are saying nvidia is doing this because the linux-kernel
lacks a common interface (yet) which disallows effective usage of the
graphics cards which would result in abysmal bad performance not using
their hacking ...

so perhaps sitting together with those companies and creating such an
effective interface might be the solution ? :)

3) I know that desktop users are not THAT important for you (linux is
mainly oriented towards industrial usage)
but think of the desktop users as of additional testers and potential
new kernel-hackers which would one day work for the common good
(having great new ideas, e.g. filesystems, io-schedulers, etc etc)
preventing those users/future developers from using their (needed)
devices will drive them away from using GNU/Linux and also those young
talented minds, those drivers are "necessary evil", after all

4) We should never forget who / what allowed this kind of development
and openness: the GPL, GNU and Richard Stallman, Linus Torvalds (only
to name a few)

We are deeply obliged to ensure this freedom in development and usage,
this however shouldn't go that far to prevent users of the code to
combine with it what they need to

This were just a few of the feelings floating in my head after having
read your position statement,

you're heading towards the right direction but please, please don't
forget the community, after all :)

this is about ideology to a big fraction, yes, but we shouldn't forget
the freedom after all

Thanks,

Regards,

Mat
--


From: Willy Tarreau <w@...> Subject: Re: [ANNOUNCE] Position Statement on Linux Kernel Modules Date: Jun 23, 9:21 am 2008

On Mon, Jun 23, 2008 at 03:02:58PM +0200, Matthew wrote:
> Hi Greg,
>
> I largely agree to this statement,
>
> there are however some downsides if you're preventing driver
> manufacturers (e.g. nvidia, ...) from the possibility to offer their
> customers proprietary drivers:
>
> 1) One big and important point for me (and more and more future
> linux-users) is powersaving features on GPUs like powermizer (by
> nvidia) and powerplay (by AMD/ATI) or other hardware. I haven't seen
> this working on newer graphics cards models with the opensource
> drivers to the present day :(

I think that's one of the reasons of Greg's post.

(...)
> if those companies can't use their own closed proprietary drivers
> utilizing patented routines they are "forced" to use

You're wrong here. If they have patented routines, they don't need
their drivers to be closed, since there routines are protected by
patents. And even if they are not patented, not releasing the source
will not prevent a competitor from disassembling the code anyway.
So there's really no point in remaining closed. Some of them might
have signed NDAs before using some technologies, but by this time,
they should have sorted that our.

> they might think over it and switch to another operating system ...

Do you know many products with closed Linux drivers which are not
supported by at least one closed OS ? If they chose to support
Linux, it's not for your pleasure, just because they know they will
sell 5-10% more when a penguin is stuck on the box.

> 2) How will this affect performance, if all of those drivers are
> limited to an user-space interface?
>
> I'm not a kernel hacker and don't have much insight into the kernel
> and kernel-development, so I can only reflect, what I've read:
> much of you kernel hackers are supposed to have said (read that on
> blogs, forums etc.) that nvidia's drivers are hackish and that it uses
> routines which shouldn't be used by this kind of drivers
>
> other voices are saying nvidia is doing this because the linux-kernel
> lacks a common interface (yet) which disallows effective usage of the
> graphics cards which would result in abysmal bad performance not using
> their hacking ...

That has nothing to do with open/close. They may as well continue to
use their dirty hacks when the sources are public. That just means that
owners of such cards on other platforms (PPC, etc...) might be able to
build the drivers for those platforms. I think that most users don't
care about the fact that a driver is dirty. They want something which
simply builds for their platform. Also, publishing their dirty hacks
will encourage kernel developers to propose some cleaner alternatives
or to extend the kernel in order to ease integration of such drivers.

Willy

--


You know who's missing

Anonymous (not verified)
on
June 23, 2008 - 2:29pm

Linus?

Yeah so what? It is just a

Anonymous (not verified)
on
June 23, 2008 - 6:42pm

Yeah so what?

It is just a written text...

OMG!!

Anonymous (not verified)
on
June 23, 2008 - 5:45pm

OMG!! What can the major vendors do now?
I guess they'll just smile and say "OK" (and do nothing more)

Yes

Anonymous (not verified)
on
June 23, 2008 - 10:47pm

Yes. And Linux drivers will become problem of Linux. Not vendors.

Ignorant Vendors

Anonymous (not verified)
on
June 24, 2008 - 1:49pm

Linux drivers are the problem of anyone who wants to stay in business in the face of a growing non-windows market.

nVidia thought they could dump a binary driver and crippled obfuscated 2D driver on the public and ignore all requests to fix it. ATi ate their lunch, and suddenly NV1x cards get a driver update for compiz - more than a year after they were declared "abandoned". Funny how that happens...

Not really, all that says is

Nony Mouse (not verified)
on
June 24, 2008 - 7:30pm

Not really, all that says is they have to provide support, not that they have to open their source code up. Alternatively they can open their source but fill it with magic-numbers and the like which means noone without documentation will be able to maintain it, if their is a bug they can shrug their shoulders and say "you fix it, it's open source."

At the end of the day, users want their stuff to work, wether or not it is open source, has the license they like or any of these other things is completely beside the point.

It would still be a step forward

on
June 25, 2008 - 6:55pm

Even if it was filled with magic numbers for driving the chips, it would still be a huge step forward, since any incorrectly used or obsolete kernel API references in the source could still be located and fixed.

It's these sorts of bugs that the kernel devs are in the best position to fix, whether or not the chipset's fully documented.

There may be a couple places where the wrong magic numbers are being programmed into the card, or one set of magic numbers might work better than another with how the kernel wants to do things. You won't be able to do much with that until someone reverse engineers the magic. But basic errors such as using the kernel incorrectly can still be corrected.

--
Program Intellivision and play Space Patrol!

Not all NV1x cards have

Anonymous (not verified)
on
June 25, 2008 - 6:57am

Not all NV1x cards have AIGLX/GLX_EXT_texture_from_pixmap support in the binary drivers (If you have a Geforce 256 you have to use the legacy-legacy 71xx drivers). I believe that there were a lot of requests for AIGLX support on GeForce 2MX era cards and eventually an NVIDIA engineer looked at how much work it would be to backport the changes the from later drivers and felt it was doable. If the cards are still being sold and there's a business reason to support them...

Drivers behind a supervisor

Anonymous (not verified)
on
June 24, 2008 - 4:10am

What it the status of using an supervisor to put drivers in a separate domain like Sony have done for the PS2 ?

Compagny said it's completly separate from the kernel side, so GPL don't apply. But i don't think that a technical trick could change the meaning of "derivative work".

What do you think of this ?

Terrible performance

No good (not verified)
on
June 26, 2008 - 4:02pm

See subject line

Too little

Anonymous (not verified)
on
June 24, 2008 - 6:38am

They should have called it what it is. A GPL violation and insist that it stop. Linux doesn't need Nvidia, there are other options. But it won't be long before Nvidia needs linux.

It's not a GPL violation if

Anonymous (not verified)
on
June 24, 2008 - 6:43am

It's not a GPL violation if the code of the driver is not Linux specific. If the code base is used by Windows also, it's not a "derivative work" of Linux, so the GPL did not apply.

It's not a GPL violation

Anonymous (not verified)
on
June 25, 2008 - 12:05pm

It's not a GPL violation unless their driver includes GPL code. It does not matter if the code is used in a Windows driver or not. The fact that it is a driver for Linux does not in itself make it a derivative work under copyright law (although some of the Linux developers seem to want that to be the case).

If it mattered if the driver were "Linux specific", then one could take such a driver and make it no longer be a "derivative work" by porting it to another OS, which obviously does not make sense.

Blabla

Anonymous (not verified)
on
June 24, 2008 - 11:25am

So? What's next? Are you finally do anything? Or is it just another gibberish blabla and nothing happens afterwards?

Real solution

Anonymous (not verified)
on
June 24, 2008 - 5:15pm

I'm willing to pay the price of an nvidia gpu once again to help the community hire nouveau reverse engineers/driver coders to work on them full time.

I think thousands of my peers may be also. Put together a massive effort to obsolete the nvidia proprietary drivers, because nvidia has the financial ability to ignore us right now, and they will.

As punishment for them being a pain in the butt, we should fund a team to reverse engineer every transistor of their DHCP implementation and create workarounds that get their whole high end lineup blacklisted by Windows Vista for any and all secure HD media playback.

It's a pipe dream.

Known (not verified)
on
June 25, 2008 - 8:08pm

It's a pipe dream.

Too early

Chocwise (not verified)
on
July 8, 2008 - 1:23am

Linux is not widespread and strong enough to achieve anything with such an action right now, other than the Linux Kernel Hackers can feel good in an idealistic way.
If this stuff you're doing here would happen in 10 Years when Linux is installed on at least 15% of all Servers and PC's, then the Hardwaremanufacturers would maybe care. But not when Linux ist installed on ~3% of all Machines out there.

You'll weaken the Spreading of Linux. And in the End you'll have your Clean Kernel, but no Users and therefor no Manufacturer would see an argument why they should go OpenSource.

The Idea itself, of threatening the Manufacturers with the exclusion of their Drivers to get them to go OpenSource is a good thing.
But honestly: Your timing is lousy.

I will most likely continue using Linux, because I'm too used to the Freedom to get back into that Windowsprison, but I'll predict your Strategy will fail, when you trigger it too early (now).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.