Linus Puts Kibosh On Banning Binary Kernel Modules
microbee writes "On LKML's periodic GPL vs. binary kernel module discussion, Andrew Morton hinted that he favors refusing to load binary modules in 12 months. Greg Kroah-Hartman then posted a patch to do exactly that. Surprisingly Linus chimed in and called it 'stupid' and a 'political agenda,' and even compared it with the RIAA's tactics. Later in the same thread Greg withdrew his patch and apologized for not having thought it through."
Seriously, there should be no "bans" of any code from Linux. That defeats the entire point. Banning people from loading their own kernal modules because YOU think there may be some weird legal issue is exactly the same as making your media player play only DRM files.
This should be a short topic, Linus' reply (which if you haven't read you should) should finish the entire conversation right here, it's a stupid and petty toys out of the pram act and I'm glad he shot it down.
Hopefully if it somehow does make it into the trunk, there will be very quickly versions with it removed releases as we go forward too because I don't think the wider community will have any truck with this at all.
Besides, what's to stop anyone from back-patching the kernel so that it does accept binary module loads? Freedom to change it; that's the GPL. Or did you think Red Hat and Novell wouldn't remove that particular feature?
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
This shouldn't be a part of the core kernel code. However, the companies providing commercial support may, of course, include such a restriction in their kernels. This would just be a step further from "we don't support your kernel if it is flagged as tainted." The user can remove them if they want, with the same consequences as removing those foil "WARRANTY VOID" stickers hiding the screw holes on electronics devices.
[
Linus was wrong on one point:
In fact, I had never understood his point until reading that post. As he points out, it clearly is hypocritical to object to the RIAA tactics (which I do) on the one hand and then propose using exactly the same sort of technological barriers to fair use on the other. If people object to binary only drivers, the sollution is for those people to refuse to use them, not for them to try to game the system to prevent other people from using them.
--MarkusQ
But the fact is that there is a large number of copyright holders for the Linux kernel, not just Linus himself. Not all of these copyright holders accept binary kernel modules, and thus they should be considered illegal to distribute with the kernel.
However, refusing users to shimmy in a binary module themselves is wrong. The GPL clearly states that it only covers distribution, not usage, so users are perfectly entitled to do whatever they want to the kernel as long as they do not distribute it. Adding a check to refuse loading of binary modules would only lead to a fork of the kernel, which is unproductive and unhelpful.
If a binary kernel module contains absolutely no code from the Linux kernel in the form of headers or anything like that, the FSF would have a hard time claiming it is derivative work, thus it should be perfectly legal to distribute. The GPL may say otherwise, but this may be an over extension of the powers of a copyright holder.
This is the strange effect brought on by the following situation:
I believe posters are recognized by their sig. So I made one.
You have to choose exactly what level of free you want.
The GPL has clauses in it that seek to prevent people from making it non-free. That's fair enough, but it's a compromise. You could make the licence more free by removing these clauses. That would enable others to limit your freedom. Linus seems to tend towards offering more freedom to make Linux less free.
But does a no-binaries patch matter? Those who want to add binary-only modules are free to customise the kernel to allow this. I hope this patch remains available. choice is good.
The way Linus talks, I think he would be happier with a BSD license than with the GPL.
When his defense asked, "Which computer has Jon Johansen trespassed upon?" the answer was: "His own."
The bottom line here, that Linus and so many other often ignored people are pushing, is that the GPL, and all other *copy*right licenses, are only licenses that effects distribution.
/. reader knows, almost any license discussion degenerates into the idiots that think being GPL means you CAN'T do what you want. As Linus so well pointed out, the RIAA sux, why do we have to?
Putting artificial measures into the Linux kernel that affect users of Linux, even when they're building their own kernels is BAD. Technology rules, ok?
Even RMS would recognise that the GPL is about freedom to do WTF you want with it once you've got it, but if you want to offer it to others, you damn well better give them those same freedoms.
Unfortunately, as any longtime
--Q
From another perspective, Linus's algorithm for deciding pragmatism is based on a greedy algorithm - it always spits out answers that look reasonable in the short term. He may be an excellent programmer and good project leader, but he seems to lack a sense of perspective.
He has said many times that he has no interest in software politics. Unfortunately for him, software politics has a terrific interest in him. He ignores it at his own peril.
Dewey, what part of this looks like authorities should be involved?
If that's the case, I think I'll stick with my GeForce 5500...
My blog
Linus has kept focus, that linux was, is and will be about technology and I agree with him on that. It is about providing wealth of options for software users. Not twisting their hand in very specific way. GPL protects linux kernel. Using GPL to blugeon other people's practices into extreme ways that GPL can be interpreted is silly.
See there is new and old world. In the new world code is the law. In the old world it is legalese like licences, laws for real people from standpoint of non-technical point. To Linus GPL is only a way to protect kernel code, like a tool. Nothing political. Whereas for Mr Stallman it is his life and politics. For linus gnu toolkit and gcc, came with added protection of GPL. And gpl for him is exactly like a tool.
When you are a carpenter, you don't think of societal and humane implications of using auto-nailer to a hammer. Same with Linus, his codebase is what matters first. He is driving politics from within the kernel, you might say in very meritocratic way and not from GPL and how morally conflicting it is with GPL, to load binary drivers. GPL is a cover from blatant abuse of the kernel code.
Linus has kept focus since beginning of the project and I stand with him on that. He is a coder first, and likes to provide things and services for other fellow coders, not be meddeling in world of politics.
Why don't they didn't they just build a kernel interface to their windows driver?
That's more or less what they are doing. At one point someone running "strings" on the nVidia kernel module found several references to HKEY_LOCAL_MACHINE and other stuff related to the Windows registry.
Certainly you're not one of the brave hackers that didn't stop developing linux in the early days despite of the severe lack of drivers.
These days you can boot linux anywhere. But you know, there was a time (not that far ago) when Linux (and BSDs) didn't support almost anything. Those people really believed in open source, and they didn't mind spending many hours of their life reverse-engineering obscure hardware. They also didn't mind selling their incompatible hardware and buying linux-compatible hardware in order to run their wonderful open source OS.
And you plan to to switch windows if the linux developers plan to ban propietary modules. You aren't switching your graphics card and buying a linux-compatible one (something you can fix with money). You just plan to switch windows.
We're lucky that the early open source hackers weren't like you - if they had switched to windows every time they found a barrier we wouldn't have open source operative systems today. Linux has got big without the help of propietary drivers and despite of the ridiculous hardware support and the one way of getting even bigger is following the same path. We don't need propietary drivers, fuck them.
> it will only result in _exactly_ the crap we were just trying to avoid,
> namely stupid "shell game" drivers that don't actually help anything at
> all, and move code into user space instead.
Why is this bad? Separating out the kernel-space open source code from the binary blob is the only way to really ensure that the module will work with any kernel version. NVidia does it right, it works and it's binary. I don't even notice that it's not all open source because the kernel part is and compiles when I install it. Having that wrapper might not make it very fast, but it does at least WORK, and is supportable.
I'm frankly a little tired of devices that say they are supported, when they provide a binary-only module for one specific kernel version of RedHat.
Unfortunately, dropping binary module support in the kernel won't fix the problem. The real big players will just forward-port the support of those binary blobs into newer kernels, and now instead of just having to deal with binary drivers, we have to deal with distributions having different code support in the kernel. And who wants the commercial linux distributions to be more flexible than the free ones? Not I!
I'm sorry if this sounds like a troll, but it's a serious question. If you install X.org / Cygwin, then you can pretty much run the same software on Windows that you would on Linux, so do you gain from running Linux? Worse driver support?
I am TheRaven on Soylent News
Heck, there are even hacks in Vista to fix an issue that first appeared in Samba with early beta releases. Do you want MS to take them out, because it would be a violation of the Samba license? (Note again that they don't need to read the code to get these issues in, nor to take them out.)
Morality is not based on law, but perhaps law should be based on morality.
Gamingmuseum.com: Give your 3D accelerator a rest.
- Linus does not want your copyright assignment, FSF recommends that you transfer copyrights to them so that "they can protect your freedom".
- FSF considers all proprietary software bad or "hoarders", Linus says "whoever writes the code is free to choose the license".
- Linus writes simple, clean code, and is a very good programmer, the source code of GNU flagship projects like GCC(the sendmail of C compilers), glibc(see the headers) are horrible.
Feel free to correct me if I am wrong...So what you are saying is that banning binary only modules would.
1. Cause grief for the people that use Linux.
2. Reduce hardware support.
3. Provide no real benefit because companies will then just choose to ignore Linux.
I don't think that you see the big picture. It is about freedom and we must enforce our view of what freedom is on those that are not as enlightened as ourselves! We must educate the masses that these short term setback will not stop our glorious revolution!
Yea you and Linus are right. Frankly I would like to see a stable binary driver interface as an option as well as a user space driver interface.
Even with a pure FOSS driver it would be nice to not have to worry about recompiling the driver for a kernel upgrade. It would be really nice if hardware manufactures could include a binary driver on a CD for Linux that would just work.
The idea preventing users from doing things you don't agree with with software is DRM. Not letting users choose to load a binary only module is no different than preventing a user from putting music from a CD they bought on to their computer.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
That continual discussion on the LKML doesn't help anyone, and misses an important technical opportunity.
Does anyone seriously believe that all card and peripheral device manufacturers will go fully FOSS any time soon, or indeed ever? No --- nobody is that unrealistic, no matter how much we'd love it to happen.
So, since it's not going to happen, how can we best live with binary modules without suffering the many, very bad consequences of closed code being in our kernel?
This is how:
Find a *technical* way of containing binary modules within MMU-protected kernel domains, at the same level as the "real" kernel but with controlled/restricted access to it. This would make binary modules almost as safe as user-code but still able to communicate rapidly with the kernel resources.
If you do that, the entire religious or political issue disappears, and instead we would have a significantly more robust/resilient kernel in practical terms.
No more bitching. Just find a way to keep the inevitable binary modules under tight MMU control.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
Woowwww
Do you know any other logical fallacies? You must lead a horrible life to have such an opinion.
Besides that, i agree with Linus, binary modules should not be banned. Because of the ability to use binary modules, a lot of commercial software are made available and that is A Good Thing (Tm)
If you mod me down, I *will* introduce you to my sister!
Do you really think that the only benefit you get from an open platform is that you can audit the code?
Probably because there aren't any actual copyright violations. The theory that a binary kernel module loaded into a GPL kernel is a copyright violation depends on one of two things
1a) Loading the kernel module into the kernel creates a derivative work of "kernel plus module" and
1b) The act of creating that derivative work requires that the module in question be placed under the GPL.
or
2) Using kernel interfaces makes the module itself a derivative work of the kernel.
1b) is simply wrong; the GPL allows non-GPL derivative works which aren't distributed or published. Either 2) or 1a) (or both) might be accepted by a court, but they'd be an absolute disaster if they were. If 2) were accepted, then by the same taken, any software written for Windows would be considered a derivative work of Windows (and subject to Microsoft's terms and conditions). If 1a) were accepted, then Microsoft would have the legal right to dictate which programs (or drivers, if you really think kernel versus userspace makes a difference) a user runs on his Windows system. Neither of those is something anyone who supports free software should want, support, or rely on as a basis for copyright violation claims.
I actually don't run Linux on the desktop, but if I did it would be for the same reason I DO run windows more.
"It runs the software I need to use".
The thing is, this patch would remove choice. You want a 100% code visible system now, make one, go ahead. I won't stop you.
But this patch would stop me using binary modules if that's what I needed to do something I want to do, for no reason other than pure pettyness.
Actually, (And in contrast to the majority of LKML spats that get posted here), Linus' post is actually rather accurate, and I agree with his reasoning. I don't want the RIAA being able to prevent all fair use just because some people make 'un-fair use'. I don't want to prevent other people from doing the same things with my works or I am being hypocritical. (Just to use one example, I realize kernel binary modules have nothing to do with fair use, and everything to do with derived works.)
It's just a shame that all this is basically the result of a really fucked up kernel design.
The kernel right now is one big monolithic, undocumented blob of ever changing ugly interfaces that requires breaking the license if you want to add a closed source driver. There is no clear interface for any third-party work that doesn't involve the inclusion of core kernel code into closed-source modules. This design of course clashes with the reality of needing closed-source drivers for some tasks. Face it: nvidia, ATI and others are not going to open their driver sources just because a minority OS doesn't want to play with them anymore. It's really a miracle that they still are making drivers, because core interfaces are changing weekly, so instead of being little bitching whiners, be thankful for that gesture of goodwill.
What Linux IMO really needs is a stable, well-designed external interface for such drivers. I don't know how possible it would be to create something like that, but systems like QNX suggest that it actually works. But I guess that having such an interface and actual *gasp* documentation for it would be too much to ask, especially from people who apparently don't know about the terrific capability of C to include comments in the code. It does work for other things than just the license! So far, I've only been working with three or four little interfaces in the kernel, and and each one of those required at least a week of code exploration before I could even only get to a trial-and-error phase, just because to the fact that (1) there is no or just outdated documentation in the kernel package itself, (2) the code isn't commented, and (3) all tutorials on the web are aimed at kernel version 2.2.0.
Yes, I'm quite disgusted with OSS in general and especially Linux, but it's still less expensive than the other crap./p
Fight hunger. Filet a politician and send him to a 3rd world country of your choice.
You understand, this is open source right? Even if it was added to the kernel by default a quick patch/recompile would eradicate it. And you want to switch to Windows because of 1 of 2 common binary only drivers? Thats pathetic, if you think that you would get more freedom with Windows. Har-dee-fuckin-har-har
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
And Windows doesn't take LOTS of time to get working? Ever tried setting up IIS with LDAP and wikis? Spent hours trying to find out why files on the network were being mysteriously and only very occasionally corrupted? (Thanks, DLink and your buggy network card drivers for Windows.) Have that fresh Windows installation get pwned in less than a minute because you didn't know it must be patched before it touches the Internet? Maybe you really believe MacIntoshes "just work"? They're pretty good, but they aren't perfect either.
OSS gets a LOT of flak it shouldn't. Double standards. When a device doesn't work with Windows, that's the device's fault. When a device doesn't work with Linux, that's Linux's fault. But you know, if those device drivers are OSS, you at least have another option. Lot of talented people out there will be able to work on the drivers.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
I'm not sure where you got the impression that the poster you're responding to claimed to be a "brave hacker" that really "believes" in open source. I read his post and understood it to be the complaint of a consumer -- either the product I use works correctly, or eventually I will get fed up with it and move on to a product that does what I want it to do. Kindly step off your high horse there.
Besides that, i agree with Linus, binary modules should not be banned. Because of the ability to use binary modules, a lot of commercial software are made available and that is A Good Thing (Tm)
Linus's reasons, as appear in his message, are completely and utterly different from yours. To briefly summarize: first, this prevents USE of binary modules, but the GPL can only come into effect when you DISTRIBUTE something (via copyright law). Second, this will just annoy people, by shoving the kernel developers' opinions down their throat (any they can change the kernel source to allow binary modules anyhow). Third, it won't work, because a small GPLed "shim" can load a binary driver (as NVidia already do).
However, he hates binary drivers, and for good reason. I agree both with this and with his reasons, and disagree with yours.
How much more stable or secure than Windows do you think Linux would remain if it became just as dependent on closed source drivers as Microsoft is?
Time is what keeps everything from happening all at once.
What if I want to use nvidia's closed source binary drivers? Should I be forced not to (or jump through hoops to do so) because some pseudo-communist geek says so? Where is the freedom in that? The only people trying to restrict freedom are hard line nuts like yourself. If I want to use binary drivers and I am not distributing them with Linux what fucking business is it of yours? What I am doing doesn't infringe on the GPL so why purposely but roadblocks in my way? Isn't patching code to prevent people doing what they want they with it for their own use exactly like DRM?
Erm, no, the only commercial software made possible by this is hardware drivers - I wouldn't necessarily call that a "good thing". Yes, it means you can use your 3D-accelerated nvidia/ati-card right now, but it may also mean that there will never be a "proper" driver for those cards.
Larger commercial software products, like games, database systems, or what-have-you are not touched by this issue.
If it's so secret, then how come I've never heard of it?
A very complete software system (OS + office + dev environment + ...) without having to pay several hundred (or thousand) dollars. And I even get free upgrades, instead of having to pay again for the next version every couple years.
Also, that little bit of closed code doesn't make the rest of the code any less open. I can (and have) still change the rest of the system. So I get very nearly all the benefits I'd have without that driver (the only one missing is the ability to send kernel oops messages to lkml and have them taken seriously), plus the ability to use whatever piece of hardware it drives.
Er, no, it's a troll. But I don't have mod points today, so...
Stuff runs like crap under cygwin, and there's still the issue of that overpriced Windows layer under it.
Linux is small in the home market. In the U.S., Linux is microscopic in the home market.
True Believers are few and far between. No one will be trading in their high performance SLI DX10 video cards with the NVIDIA chip sets for the joys of migration to your "wonderful open source OS."
We're lucky that the early open source hackers weren't like you.
He isn't a hacker. He is a user. Pragmatic. Not ideological. That used to be a fair definition of the hacker as well. Before he got religion.
We don't need propietary drivers, fuck them.
And when the user replies, "We don't need Linux, fuck you," what then? OEM Linux has all but disappeared from Walmart.com. Heathkit is twenty years dead. This is not a not a country of system builders, DIY consumer electronics.
Windows strength is in the Bazaar. The marketplace. The middle class. Linux in the Cathedral. The French Parliament. The Munich city council. It has become the OS of choice of the Politically Correct.
Issues which are absolutely incomprehensible to anyone else take on overwhelming importance and are argued to exhaustion.
Interest dies and momentum is lost.
A lot of lawyers consider deCSS and all Mp3s illegal too.
Doesn't mean my OS should act as a policemen, in fact that's precisely WHY a lot of people switch TO linux, because it doesn't do that.
It's definitely a good thing. The idea of banning binary kernel modules is a slippery slope that eventually leads to the idea that you can't run any program under linux unless it's GPL.
cat
The only reason the parent gave was that he feels commercial software being made available for Linux is a good thing. Is this what you are disagreeing with?
Ehhhh....no.
Linus is allowing me the freedom to choose whether a binary driver or a F/OSS driver is the best tool for the job. If I am doing something that requires the higher performance and better graphics of a proprietary nvidia or ati driver, then Linus says it is ok for me, on my own machine, to use that driver. But I can't legally distribute a kernel with the binary only driver. IMHO, that's the way F/OSS is supposed to work.
MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
Desktop version of SUSE Enterprise Linux 10 will cost you $50/year (or $125/3yr), while the server version will wring out $350/1yr or $873/3yr. RH is more expensive.
The only free (as in beer) distribution today that gets close (but still not quite there yet in polish) is Ubuntu, but how many users have heard of Ubuntu vs Novell and RedHat?
Linux is now mostly free, but the greatest thing that can happen to it (acceptance in corporate environments) tends to make it expensive.
And it's not a bad thing. For example, you don't often hear OSX users complain about the price ($130). Even most Windows users are not complaining about the price. What they ARE complaining about is lack of support, buggy software and bad drivers. Makes you think...
-- Sig down
The only reason the parent gave was that he feels commercial software being made available for Linux is a good thing. Is this what you are disagreeing with?
I disagree that running commercial software is reason enough for having binary kernel modules. Now, commercial software is fine, if you want/need that sort of thing, but you should run it in userspace. Binary drivers in the kernel are something else altogether.
AFAIK most commercial software written for Linux does not need to run anything as a kernel module, so the connection between "having commercial software on Linux" and "binary drivers in the kernel" is fairly slim, anyhow. Please correct me if I am wrong.
> In essence, if they DID stamp out all proprietary drivers, in userspace and kernel space. Then what?
Then Linux would be like OpenBSD -- you wouldn't be reading about a remote root exploit in the NVidia drivers every week.
My other car is first.
Ok, I'm giving up the ability to moderate this discussion because this needs to be said.
NVida *IS NOT* violating the GPL by releasing a binary only driver. They are not distributing a kernel with their closed source driver linked in or anything remotly resembling it. Every manufacturer that I have been to that has closed source linux drivers has not distributed a kernel with their code linked in.
The *END USER* download the module. The *END USER* loads the module. The company is distributing their code, not a bundle as would be in a linux distribution. It is arguable that even having a distribution that has binary drivers distributed with it STILL doesn't violate the GPL because the binary blob isn't linked with the kernel until the module is loaded, by the end user.
I personaly think that binary drivers are silly, I can't imagine what sort of IP protects how to interface with most hardware, but the fact remains that the user is linking the binary code to their copy of the kernel and the whole binary code violates the terms of the GPL is silly because the GPL specifcly only covers distribution.
IANAL blah blah blah. I have read the GPL, LGPL, and most of the relevant sections of US copyright law though.
-ms
Doom 3 (or any other commercial high end graphics software).
Working, fully functional, stable NVidia/ATi drivers to run said software.
(Of course, this isn't the only type of software people have or want to run on Linux, it's just the most familiar and easiest to talk about for argument sake...)
Many closed source drivers can't be opened because of licensed 3rd party technology the licensee (e.g. nVidia) has no legal authority to open. And, the last I checked the open source nvidia driver project still can't hold a candle to nVidia's closed driver.
If you want support for the latest hardware in Linux, sometimes you might have to bend a little. nVidia isn't going to open up just because you want them to (and legally they can't). And any reverse engineering efforts are going to be constantly playing catch-up with Windows.
The whole license debate is nothing more than a religious ideology that does nothing to promote the adoption of Linux. The majority of potential users out there (me inlcuded) just want something that works. They aren't going to be willing to deal with low budget hardware and second rate drivers just to push some religious agenda. If I wasn't able to do EVERYTHING on Linux that I can do on Windows I would never have made the switch. I certainly would never have settled for a hacked unstable video driver just to prove a point that nobody outside the community even cares about.
If Linux is going to stay competative, they are going to have to lose the agenda...
The drivers for the Atheros chips were essentially required to be binary by the FCC (United States communication rules). Don't know if this is still true. The reasoning is that if software were provided that the users could violate the restrictions on broadcast power and such. But by making parts of the driver be binary only, it can be argued that violations can only occur by reverse engineering. These drivers though only had a small layer of binary code, most of it was in source code.
That said, I support binary modules for the same reason that I support non-GPL modules. I want to run modules free of political and religious restrictions. I don't want my operating system to tell me that a module with a BSD license makes me an immoral or misguided person, or that public domain code is eroding our rights, or that commercial code is inherently evil. If I want to commit a sin, then that's my right, I don't need my OS to proselytize me.
Linus has the right attitude. He's for the use of GPL as a tool to make Linux better; but not to use Linux as a mean to push the GPL way of thinking on everyone.
Tyranny isn't the worst enemy of a democracy. Cynicism is.
Then Linux would be like OpenBSD. You wouldn't be reading about it at all.