Efforts to bring glitzy new graphics to Linux are fueling an old conflict: Does proprietary software belong in open-source Linux?
The issue involves software modules called drivers, which plug into the kernel at the heart of the open-source operating system. Drivers let software communicate with hardware such as network adapters, hard drives and video cards.
The use of such drivers is common with Linux, but it is all but necessary for the recent push to bring eye-catching graphics to the operating system user interface. To deliver 3D effects and similar visuals for the desktop, the software taps into a computer's graphics chip. And although the Linux kernel is open-source software, drivers from dominant graphics chipmakers Nvidia and ATI Technologies are not.
Proprietary drivers pit purists against pragmatists. The Free Software Foundation, which wrote the General Public License (GPL) that governs Linux, says that the license prohibits proprietary drivers.
But while the FSF tries to be an irresistible force, they're running into an immovable object, in the form of graphics chipmakers, which are keeping 3D graphics drivers proprietary.
"If Linux expects broader vendor support, the community needs to capitulate to proprietary software involvement," said Raven Zachary, an analyst at The 451 Group.
Help wantedTo write open-source graphics drivers without help from Nvidia or ATI is tough. "The proprietary drivers are largely the only choice for those with modern graphics processors. Nvidia's GeForce 7 series and ATI's Radeon X1000 series both presently do not offer any open-source driver," said Michael Larabel, founder of high-end Linux hardware site Phoronix.
Efforts to reverse-engineer open-source equivalents often are months behind and produce only "rudimentary" drivers, Larabel added.
ATI's driver remains proprietary for intellectual property reasons, the Canadian company said. "There's third-party intellectual property that ATI has licensed that is required by law to be protected," said Matthew Tippett, ATI's Linux software engineering manager. "And the graphics market is hotly competitive, and particularly in the high-end cards, we have lots of intellectual property. We want to maintain the proprietary, trade-secret nature of that as long as possible."
For Nvidia, intellectual property is a secondary issue. "It's so hard to write a graphics driver that open-sourcing it would not help," said Andrew Fear, Nvidia's software product manager. In addition, customers aren't asking for open-source drivers, he said.
Some Nvidia components are open, including some driver configuration tools and a driver component that interfaces to the kernel. "We believe in open source where it makes sense," Fear said.
Both companies are cooperating with efforts to give Linux a 3D interface competitive with Apple's Mac OS X and Microsoft Windows Vista. ATI is working "closely with Novell" on its Xgl software, Tippett said.
Nvidia prefers the design of the AIGLX approach from Red Hat, said Andy Ritger, manager of Nvidia's Unix graphics drivers. "The eye-candy stuff is quite cool. I think it looks better than Vista, but I'm biased," he said.
Open-source advocacyLinux founder and leader Linus Torvalds has argued that some proprietary modules are permissible because they're not derived from the Linux kernel, but were originally designed to work with other operating systems. If they had originated from the kernel, that would require them to be covered by the GPL.
"Historically, there's been things like the original Andrew file system module: a standard file system that really wasn't written for Linux in the first place," Torvalds wrote in a 2003 mailing list posting. "Personally, I think that case wasn't a derived work, and I was willing to tell the AFS guys so."
The FSF sharply disagrees. "If the kernel were pure GPL in its license terms...you couldn't link proprietary video drivers into it, whether dynamically or statically," FSF attorney Eben Moglen said in a January interview.
Kernel developers have kept proprietary drivers at arms' length, adding a feature years ago that could be used to block proprietary modules from loading. And in February, Greg Kroah-Hartman, a kernel programmer who works for Suse Linux seller Novell, added a patch that will trigger such a blockage for the USB subsystem he maintains.
"The USB subsystem will not be allowing closed-source kernel drivers to register with it" after February 2008, according to a note with his patch, posted online. Those with proprietary functions can move them above the kernel level, he argued. But his position against proprietary modules has sparked concerns about blocking use of some ISDN networking gear.
A proprietary driver, even if it works, raises complications. "If you have an open-source kernel...and you add a binary module into the mix, it reduces your ability to provide the customer the same level of service," said Dirk Hohndel, Intel's director of Linux and open-source strategy.