Originally Posted by Jecos
"Closed Source kernel modules are illegal!!"
They kill progress on development and possibly violate the GPL.
I've been enjoying this thread because of the considered opinions, and the lack of hyperbole and posturing. Please don't post unsupported opinions like the above, it will just reduce my enjoyment
The binary module as nVidia do it, does not "kill progress on development". nVidia has not to my knowledge tried to reduce innovation in the Linux kernel or X, and they have shown themselves to be responsive in (eventually!) making their module compatible with the changes that have been happening in those areas.
As for "possibly violating the GPL", Thunderbird's link above is a nice discussion of the issue. I don't think nVidia violates the GPL at all, because they provide a binary module which doesn't use GPL code, and a source code component which must be compiled to produce an actual kernel module. It is by compiling the source code together with the binary module that an arguably derivative work is produced, and nVidia doesn't do that - the users or distributors do it. So while Kororaa may be violating the GPL by distributing a derivative work, nVidia certainly isn't. And in my case, because I compile the module myself and don't distribute it, there is no GPL violation either.
Originally Posted by Jecos
The sooner a company ATI or Nvidia releases their source the sooner they have a crowd of people buying their card, b/c they won't have to wait for a binary driver that holds them back on newer and funner things.
OK, well I'll be a little bit inflammatory here because my opinion is that even now, with GNU/Linux use really starting to make inroads into the Windows monopoly, Linux needs nVidia more than nVidia needs Linux. Right now, Linux support probably brings nVidia a few thousand card sales per annum. If nVidia stopped supporting Linux right now, I don't think their bottom line would suffer in any significant way.
To achieve "Total World Domination" for GNU/Linux and the open-source Way, Linux not only needs to be demonstrably better than the alternatives, but mindsets and business methods also need to change. And changing people's minds always takes quite a bit of time and effort
better than the alternatives (IMHO), but part of the reason for this is because of the effort that has gone into making it conform to the old Windows/proprietary model. As well as kind-of allowing binary modules, I'd put Wine and ndiswrapper in the same category. Linux has not yet succeeded to the point where third-party application suppliers and hardware manufacturers always provide support for Linux, and that point may yet be some way off. In the meantime, to provide a satisfying experience for users, there has to be a way for people to use their existing and familiar applications and hardware.
So Wine and ndiswrapper especially, provide a sort of "half-way house" for new adopters of Linux. Once people are using Linux, then in my experience they really appreciate the variety and quality of the Free alternatives to their existing solutions and will migrate away from their proprietary ones. It's a very powerful effect! But it is vital that that initial experience is positive.
As for changing business methods, you can understand the unwillingness of a company that makes all their money from software, to make that software Free
. Most application providers can continue to make binary-only applications that will work on most Linux distributions, thanks to LSB/LFS etc. Also, many bits of software that are "drivers" in the windows world can operate in user space on Linux, which means that they can be binary-only as well. The grey area (forgive my British spelling, I can't bring myself to say "gray"!) is for software that must
exist in kernel space, and nVidia is in that category.
What is "an nVidia product"? I don't think you can say it's just the card, chips etc. The driver is an integral part of the product because without it you can't make the hardware work to its potential. I'm sure there is technology in the kernel driver that could be used to make an ATI card, for example, work better- maybe things like the code paths for different CPU capabilities, or the pre-rendering calculations that have to be done. It's perfectly valid for nVidia to want to keep their work from enhancing their competitor's products, which in turn justifies keeping the driver closed-source.
For this to change it would be necessary for the software to become truly a low-value companion to the hardware, as opposed to an integral part of the package, which it is at the moment. I can actually see a future where this is the case: while DRI is just a mechanism for getting fast access to the hardware, if there was another generic layer on top of DRI for decomposing 2D and 3D drawing commands into a lower, more hardware-compatible format, then perhaps it would minimise the need for vendor-supplied software. Is this what Mesa does? I don't know enough about the technology to comment.
It seems at the moment that Microsoft drives the hardware developers to some extent, by publishing its DirectX specs. I'm sure that nVidia and ATI optimise their hardware designs to give good performance when rendering the output generated from DirectX. Maybe in the future, X and OpenGL will (once again?) be the most important references for the hardware developers to design to