The interface IS the source code
Posted Apr 20, 2006 13:46 UTC (Thu) by
elanthis (subscriber, #6227)
In reply to:
The interface IS the source code by dwheeler
Parent article:
Some notes on Linux and free drivers
This "get it into the mainline kernel" line is just as broken today as it ever was.
Here's an example:
I built a new box a month or two ago. I wanted to install Ubuntu. However, the very most recent stable Ubuntu release *wouldn't install* because various bits of the hardware had no drivers in the ancient (by Linux standards) kernel in the Ubuntu Breezy install disc. The same went for the most recent Fedora release at the time. In short, it was impossible for me to install any of the OSes I want onto this machine without downloading and installing a beta/pre-release version of an OS (Ubuntu Dapper, in my case).
Now, let us assume that the kernel had a stable driver ABI. Or, heck, we don't even need that; let's pretend it had a stable driver API. I could have downloaded the additional and updated drivers necesasry to install Linux on my new box, put them on a floppy, and told the installer to use those driver binaries or even to compile those drivers at install time. And voila, I could've installed just about any Linux onto this machine without resorting to installing buggy unstable pre-release software for hardware which was already close to 6 months old in shelf-time.
The "get it into the mainline kernel" line essentially means that in order to ever support new hardware, you have to upgrade your kernel. And, because no distro in its right mind supports wholesale kernel upgrades in a distribution release's lifetime (look at how much testing and effort has to go into getting a simple kernel patch package pushed out from a major distro vendor), that essentially means that you have to upgrade your entire operating system - every library, application, and so on - to a new version of the distribution release to get the newer kernel that supports your new graphics card or sound card or network card or whatever. And, if there hasn't been a new release of your distro with the new kernel yet... too bad. You are forced to not use some bit of new hardware, *even if a completely Free GPLd Linux driver has existed for several months for the hardware*.
Your only options become: (a) don't use new hardware, even if you have a genuine need for it; (b) install the kernel from sourcecode yourself, which requires a huge investment of time and energy, and requires knowledge most people don't have and shouldnt' realistically be forced to have, and which means you lose automatic kernel security updates from your OS vendor; or (c) install a beta version OS to get the new kernel.
Again, you don't even need a stable ABI or non-Free drivers; I just want to be able to take a Free GPLd driver that came out five months ago and install it on my OS which came out six months ago. I'm perfectly fan with completely banning non-GPL drivers. Wanting non-Free binary drivers is NOT the issue here!
"Get it in mainline" isn't an answer that actually helps users. The only people it helps are the developers, because it gives them an excuse to not need to put forth the effort for a stable API. It's the developers' project, and I in no way feel that I have a right to tell them how to do things unless I'm paying them to do it. But please stop blathering on with the nonsense that "getting drivers into mainline" actually solves the issues the *users* have with binary drivers. It doesn't.
(
Log in to post comments)