Should Linux Allow Proprietary Drivers?
I've covered this topic a bit before and it certainly fits into my recent discussion of what are we as a community willing to give up if we want to see mass adoption (latest part of that discussion here). A recent article, entitled New Linux look fuels old debate brings up a long standing point of debate. Should Linux allow and use proprietary drivers? This debate covers a wide spectrum of topics and many of the participants are quite ardent in their view. On one hand, one of the founding principles of Linux is Open Source and freedom. Why should closed drivers be allowed then. They taint the kernel (from a GPL perspective at minimum), allow very low level access to your machine without you being able to see what's going on and make diagnosing problems extremely difficult. Things like a Sony rootkit for Linux would now be possible also. Besides that, they just seem to be fundamentally contradictory to the aforementioned founding principles. On the other hand, if this whole thing is really about choice, shouldn't vendors have the choice to distribute closed drivers and consumers have the choice to use them? Won't free markets decide what's best? Seems like both sides have a point, doesn't it.
The reality, as usual, is that it's just not that simple. There are many factors at play here and to explain them all would be much to time consuming. The first thing that has to be settled is whether or not closed source kernel drivers are even legal. I've seen yes as an answer and I've seen no as an answer, both with logical arguments. Looking at the wording of the GPL, I'd guess probably not legal, but if Linus allows them (and in fact the entire kernel community has indeed allowed them thus far), I'd find it hard to believe that a court would make a ruling against them now. As muddy as the legal issues are, I'm going to sidestep the whole topic and leave that to the lawyers. To me, this is more of a "can Linux allow proprietary drivers" and not "should Linux allow proprietary drivers" question anyway.
So, that brings us back to "should". Some predict that doing so could equate to a Linux doomsday, while others say not allowing them will result in Linux being a fringe OS forever. So, who's right? As usual, I don't think there is a right or wrong here. It depends on what your vision for Linux is. For most of us that have been in the Linux community for a while, I think the answer is somewhere between binary drivers are tentatively bad but borderline acceptable to binary drivers are insidious. If you're a marketing type or someone who things Linux should do anything it can to get 80% market penetration, then you probably answered that binary drivers should be welcomed. Much different visions. But the kernel is too fundamental to Linux to have it both ways. One side has to give. It's another question of will what has gotten us this far be abandoned (or partially abandoned) in order to get us over the next chasm. Can we convince a company like nVidia, who's current potential revenue for Linux sales pale in comparison to potential closed OS revenue, that Open Sourcing their driver really is better for them? Or, will consumer demand for a working out of the box nVidia experience force one of the major distributions to cave and start shipping? Will shall see.
--jeremy
Linux, kernel, Open Source, binary drivers