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."
"I'm so sorry Mr. Linus! Please forgive me! I was a bad wittle boy."
This week on LKML 24. Andrew and Linus get into it over politics, while Greg watches from the closet. Watch it Friday at 8, 7 central, 6 a mountain.
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.
I'm not sure what kernel list the poster has been reading. Linus is a pragmatist. He has constantly favored using the best tool for the job over religious fanaticism. There's no surprise here.
Interested in open source engine management for your Subaru?
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."
Before people start bashing those who proposed this, think of the devs who put so much of their time and effort into getting us Linux. And note that the proposal arose from a technical issue, not from a 'everything must be Free' stance. From the last thread /. links to, part of Greg's retraction:
It's just that I'm so damn tired of this whole thing. I'm tired of
people thinking they have a right to violate my copyright all the time.
I'm tired of people and companies somehow treating our license in ways
that are blatantly wrong and feeling fine about it. Because we are a
loose band of a lot of individuals, and not a company or legal entity,
it seems to give companies the chutzpah to feel that they can get away
with violating our license.
So when someone like Andrew gives me the opportunity to put a stop to
all of the crap that I have to put up with each and every day with a
tiny 2 line patch, I jumped in and took it. I need to sit back and
remember to see the bigger picture some times, so I apologize to
everyone here.
And yes, it is crap that I deal with every day due to the lovely grey
area that is Linux kernel module licensing these days. I have customers
that demand we support them despite them mixing three and more different
closed source kernel modules at once and getting upset that I have no
way to help them out. I have loony video tweakers that hand edit kernel
oopses to try to hide the fact that they are using a binary module
bigger than the sum of the whole kernel and demand that our group fix
their suspend/resume issue for them. I see executives who say one thing
to the community and then turn around and overrule them just because
someone made a horrible purchasing decision on the brand of laptop wifi
card that they purchased. I see lawyers who have their hands tied by
attorney-client rules and can not speak out in public for how they
really feel about licenses and how to interpret them.
Please think of the coders, and the shit they have to put up with while making your free operating system the next time you start clamoring for these closed source binary blobs.
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
I understand why those that want to ban binary only modules. It causes hell for everyone on the kernel dev team.
But.... banning them instantly pisses off every single company that is barely putting out a hardware driver for Linux already (nvidia for example) A ban will not make these people go "oh,ok... we'll release the source code." they will simply flip off all Linux users and tell them to pound sand.
Do not look at laser with remaining good eye.
"Let's put it this way: if you need to ask a lawyer whether
what you do is "right" or not, you are morally corrupt.
Let's not go there. We don't base our morality on law."
-- Linus Torvalds
Apparently our morality is simple pragmatism?
For every problem, there is at least one solution that is simple, neat, and wrong.
I'm already in a situation where most distributions don't even install because the nv drivers they try to load at default won't work on my Geforce 6800. Even the latest vesa drivers seem unbearably slow. If this patch got into the tree, I'd switch to windows the exact same day.
How do you kill that which has no life?
Actually, Linus's comments are not very negative. When he's negative, he capitalises and underscores and asterisk-ises words all over the place, and uses the phrases "NEVER", "fundamental", and "so lets not even talk about it".
This particular way of blocking proprietary drivers has been withdrawn, but the idea seems to still have support, or at least be open for debate.
Please help publicise swpat.org - the software patents wiki
If Nvidia doesn't release their source because it's not "derived" from the linux kernel (they only use a GPL kernel interface to bridge it to their driver), then why TF do they have a seperate driver download for linux? Why don't they didn't they just build a kernel interface to their windows driver? When their driver stops working with newer kernels and they patch it to work again, isn't that patch "derived" from the linux kernel, otherwise where esle would the patch be derived from?
What Linus is saying may not exclude the possibility of a single kernel dev suing Nvidia for GPL license violations or possible copyright infringent.
Just a thought,
BBH
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.
Or is the GPL a magic copyright that should be extended indefinitely past an author's death?
What gives you the impression that copyright does not extend past the death of the author? It most certainly does.
In the United States, it is life of author plus 70 years (see How long copyright lasts).
So if you wanted to change the licence to BSD, you would need to contact the heirs of these dead people.
> 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!
Whoops - I'm wrong and the other responder is right. It's life + 70 years (I misread the article.)
- 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...okay in theory one cannot link any binairy blob with the kernel and redistribute it, this is forbidden by the (strong copy-left of the) GPL.
but if Linus wants to allow this why not put Linux under a license with a weaker copyleft, like the LGPL?
at the current situation i think the kernel devs are right when they feel the GPL is violated.
cies breijs.
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!
Using free code that links/attaches into GPL-ed code is the license _requirement_
No. The license requirement is that I cannot _redistribute_ GPL-ed code with binary code mixed. But if I pick up proprietary code, I mix it by myself on my machine, I compile it and I use it, I'm perfectly GPL-compliant, provided I don't redistribute it.
-- Patent no.123456: A way to personalize
Is it part of this bigger picture of yours to not allow people to run certain kinds of code on their computer?
Linus didn't name Linux, the community did. It was to honor the fact that he started it all.
Perhaps you should actually learn the history of Linux before you open your mouth and prove your ignorance to the world.
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
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.
Perhaps you should actually learn the history of Linux before you open your mouth and prove your ignorance to the world.
practice what you preach. Linus named it "Freax" -- it was his friend Ari Lemmke, the FTP admin where the code was hosted, that named it "Linux". calling him "the community" is a bit pushing it.
Stop Computers/Cars Analogies on S
Ari made up about half the Linux community at the time.
“Common sense is not so common.” — Voltaire
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.
We all know that the correct nomenclature should been "Gnu/Freax", and that is why it got renamed. :-P
[]'s Victor Bogado da Silva Lins
^[:wq
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?
I believe there is a restriction in 64-bit vista that prevents unsigned drivers.
Nope. There is a restriction in all versions of Vista against using unsigned kernel mode drivers. However, the new Windows Driver Model makes it possible for 99% of drivers (minus graphics drivers) to run in usermode.
So, you can't run unsigned kernel mode drivers. But, unlike XP, you don't have to run kernel mode drivers - they all run in userspace. Interesting, since this will cut heavily into the profits Microsoft makes from driver signing, but it make the OS a billion times more stable - usermode drivers can't bluescreen. (This is also why there's "hardware compatibility" problems with Vista right now - although the user-mode drivers are easier to write, not everyone has ported their drivers yet.)
DATABASE WOW WOW
Larger commercial software products, like games, database systems, or what-have-you are not touched by this issue.
* sigh *Wrong! See Oracle's ASMlib for one example of why you are wrong.
If you mod me down, I *will* introduce you to my sister!
The closed source drivers lag on the bleeding edge?
Which has driver support for XGL-like effects: the nVidia closed source driver, or the nv open source one?
To make such a blanket statement like that's silly.
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?
Excuse me, but GNU must be capitalized to emphasize its importance over all other open source projects -- as well as the fact that it is a recursive acronym.
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.
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...
Of course not, GNU is not UNIX.
Doesn't VMware Workstation install binary modules into the kernel? For a lot of people VMware Workstation is very necessary from day-to-day use. I know that VMPLayer and GSX server is now free, but Workstation has oh so much power and configurability. Also, locking people out from using an upwards of $500 program is going to piss a lot of people off, such as myself. I'm sure VMware could work their way around it, but right now it does Just Work(tm) and I am very greatful for it.
:-)
I may be going out on a limb here and may not understand completely how Vmware works, but from what I can see from installing it just last night [recently wiped and installed Gentoo over SUSE 9.1] it searches for a module and if it cannot find one that works, it compiles one?
Please correct me if I am wrong. Half of this comment is a statement and half is a question.
Tyranny isn't the worst enemy of a democracy. Cynicism is.
A similar situation exists for many printers, printer-fax-copier devices, graphic tables and many other hardware devices.
In all cases the usual reason given by the companies for not providing a drivers is that they do not want to make the drivers open source and thus expose the inner workings and maybe trade secrets to the general public.
With wireless drivers there is the additional issue of legal requirements: a driver must not allow, for example, to drive the radio with more than the allowed power.
Unless LINUX finds a way for companies to provide closed drivers, I do not see too bright a future when it comes to support common hardware devices.
A similar problem exists when it comes to handling media, but thats a different topic.