Slashdot Log In
Linus Puts Kibosh On Banning Binary Kernel Modules
Posted by
kdawson
on Thu Dec 14, 2006 09:09 AM
from the distribution-vs.-use dept.
from the distribution-vs.-use dept.
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."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Quote from the patch withdrawl (Score:5, Funny)
LKML could be a soap opera (Score:5, Funny)
Re:LKML could be a soap opera (Score:5, Insightful)
Parent
Re:Torvalds needs to get over himself. (Score:5, Insightful)
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)
Parent
Re:Torvalds needs to get over himself. (Score:5, Insightful)
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.
Parent
Re:Torvalds needs to get over himself. (Score:4, Insightful)
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.
Parent
Re:Torvalds needs to get over himself. (Score:5, Informative)
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.
Parent
Re:Torvalds needs to get over himself. (Score:5, Funny)
Parent
Re:Torvalds needs to get over himself. (Score:4, Funny)
Parent
And of course Linus is right... (Score:5, Insightful)
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.
Exactly (Score:5, Interesting)
Parent
Re:Exactly (Score:4, Insightful)
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.
Parent
Vista (Score:4, Interesting)
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.)
Parent
Re:Exactly (Score:5, Insightful)
Parent
Re:Exactly (Score:5, Insightful)
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.
Parent
Re:Exactly (Score:5, Informative)
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.
On the average Windows box, you then repeat this process ever 6 months because it got fricked up somehow. Nah -- it's as much trouble or more than linux, *AND* it costs me money to boot. Insult to injury. No thanks.
Parent
Re:And of course Linus is right... (Score:5, Informative)
If that were the case this patch wouldn't have been submitted. If you read the withdrawal email you'll see that there are "hundreds".
You as an end user just don't see them because they're all specialized for certain tasks or equipment. Most people just see the video drivers.
Not going to happen. NVidia and ATi have stated they couldn't open up the drivers if they wanted to. There's just too much licensed IP they don't have the rights to open.
Parent
Re:And of course Linus is right... (Score:4, Insightful)
Bullshit. They can yank out third-party routines and instead document EVERY register that is exposed to the bus. What possible "IP" can be "violated" by documenting that placing falue (n) through (n+255) in $foo register does $bar? Absolutely none. It does not reveal any optimizations in that third-party routine, and does not expose the chip mask to the layperson, e.g., anyone not possessing the equipment necessary to disassemble a chip without damage, not possessing an electron microsocope, and not possessing the skills to reverse engineer it even if they could get to the point where they can take those pictures.
Parent
Re:And of course Linus is right... (Score:4, Informative)
I'm sure there are plenty of other examples, but S3TC (the reason Unreal Tournament 2003 only ran with NVidia cards with the NV binary drivers until ATI released their first binary drivers) is the first well-known example.
Implementing S3TC goes WAY beyond documenting a few registers. Modern video drivers do far more than you realize, they aren't just some low-level glue.
Speaking of low-level glue, most if not all of the NVidia kernel module is in this category and source is available, but it's useless without the (non-kernel) userspace X11 driver.
Parent
Re:And of course Linus is right... (Score:5, Insightful)
They lie. Or pretext - or whatever current euphemism is.
The fact of the matter is that all they had to do is release register specs and the drivers would have been written, be more stable and provide fertile ground for experimentation with desktop technologies.
The latest ATI cards do not even work in 2d - probably because someone decided that hoarding "IP" is useful before AMD merger.
Parent
Re:And of course Linus is right... (Score:5, Interesting)
Parent
Re:And of course Linus is right... (Score:4, Informative)
There isn't any, as long as they're not derivative. When Greg withdrew his patch he said he was driven by the hundreds of other closed source modules that are closed despite being GPL-derived. Forcing all modules open would help put a stop to that. Linus pointed out that it would force open perfectly legal modules as well, and he wasn't going to be put in the position of forcing his ideology on someone else, equating it to a form of DRM. His point was that if they wanted people to respect the GPL they needed to respect license choices of other peoples' non-derived code.
Parent
Re:And of course Linus is right... (Score:4, Insightful)
TW
Parent
Re:And of course Linus is right... (Score:4, Informative)
The closed driver has a security hole in it, which can be exploited remotely (e.g. by viewing a web page) and gives the attacker the ability to exploit code. If you want a fix, you have to update to the newest version of the driver. There's a catch though; the newest version doesn't support some older cards. If you want those older machines to not be vulnerable to infection just from viewing a web page, you need to upgrade their graphics cards as well.
Sounds unlikely? Well, that's exactly what happened to users of nVidia hardware. If the driver had been Free, then any users that cared enough could have back-ported the fix, or paid someone else to do so. The biggest problem with closed drivers is that, once a newer version of the hardware is released, it is in the manufacturer's interest to 'encourage' you, the user, to upgrade.
Parent
Re:And of course Linus is right... (Score:5, Insightful)
Banning binary kernel modules also has the potential for being the start of a slippery slope... if you're going to say that binary kernel modules aren't allowed, why not extend that to any piece of software that isn't open source? Maybe that would cause some people to open-source their software; I'd argue that it would also cause a lot of people to stop producing software for Linux altogether.
If you want Linux to be a paragon of open source virtues, banning binary modules is an excellent plan. If you want Linux to remain relevant in the real world, not so much.
Parent
Re:And of course Linus is right... (Score:4, Insightful)
Parent
Backpatching (Score:5, Insightful)
Re:Backpatching (Score:4, Interesting)
The point is the message that this brings across. At the moment people are pretty lax about binary dirvers. A ban on them in the vanilla kernel will go a long way in telling the driver vendors to make their specs free or get out of Linux land. Free drivers would be awesome, but I don't know if Linux is strong enough to actually influence the vendors at this point so we might end up with nothing. Plus, implementing this at the code level seems like the wrong place to be doing it. As Linus said, the license ought to control the distribution not the usage.
Parent
Not surprising at all (Score:4, Informative)
Re:Not surprising at all (Score:5, Interesting)
Well, FSF's sense of "long-term" perspective has given them HURD. Linus's "lack" of perspective gives me Working Software Right Now(tm). In the end, that's all businesses really care about.
Parent
distro vs core (Score:5, Insightful)
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 (Score:5, Insightful)
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
Re:Linus was wrong on one point (Score:5, Informative)
I think he was referring to the RMS crowd, who won't.
Parent
Re:Linus was wrong on one point (Score:5, Funny)
I think he was referring to the RMS crowd, who won't.
You mean the GNU/Linux crowd, right?
Parent
Linus have a right to his opinion (Score:5, Insightful)
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.
Re:Linus have a right to his opinion (Score:4, Informative)
The kernel accepts binary modules by design and default. Even if the "other copyright holders to the Linux kernel" mattered in this case (they don't, see below); they submitted their code and efforts in agreement with things as they stood then, not some potential future version that Morton might want to make. So you're wrong on that point, despite any arguments they might make or political positions they might support, when the chips were down they did support kernel modules and there is no reason at all they should be illegal.
Further, a large majority of said other copyright holders wouldn't matter if they wanted to. A contributor might have given something great and valuable to the linux kernel. Unless they're the maintainer of the portion that actually handles loading modules, too bad so sad. If I'm not mistaken that's Torvalds and Morton. Everyone else, no matter how great their bluetooth subsystem is, can no more demand linux "make binary modules illegal" than you could of Microsoft.
~Rebecca
Parent
Linus is sort of an anomaly (Score:5, Insightful)
This is the strange effect brought on by the following situation:
Re:Linus is sort of an anomaly (Score:5, Insightful)
Frequently I do not agree with Linus on issues, because his general view is to avoid meddling with things until absolutely necessary (whereas RMS, for instance, tries to think as far down the road as possible). However in this particular case Linus is dead right: putting code into the kernel for non-technical reasons, purely to limit the *end user* and specifically limit what they can do with their computer is very much "anti-computer-freedom" and should never be done.
So Linus is effectively saying "if we do this we limit the freedom of the end user, just like the RIAA is doing with DRM..." and he is quite right.
Parent
That's the problem with "free" (Score:4, Insightful)
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.
BSD (Score:3, Insightful)
Re:BSD (Score:4, Interesting)
Clearly Linus does like the GPL restricting those who would distribute code (whereas BSD causes no restrictions). The point Linus is trying to make is that we have to distinguish between limitations to distribution and limitations to the end user. The proposed patch would mostly have limited the end-user (making it annoying for them to run binary modules). Linus is saying that we shouldn't try to limit the freedom of the end-user with technical restrictions. But (as quoted above) he clearly does like the fact that the GPL forces people who "take the code" to "behave according to the rules."
Hence Linus would not be happy with a BSD license.
Parent
Re:Licence terms (Score:4, Informative)
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 [wikipedia.org]).
So if you wanted to change the licence to BSD, you would need to contact the heirs of these dead people.
Parent
Look at it from the dev's POV (Score:5, Informative)
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.
*Distribution* license (Score:4, Insightful)
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
They have a point, but.... (Score:5, Interesting)
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.
Oh irony (Score:4, Informative)
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?
Re:Oh irony (Score:4, Insightful)
Parent
Question regarding binary drivers. (Score:5, Informative)
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
it was always about technology (Score:4, Insightful)
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.
Yay, politics. (Score:4, Insightful)
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