One long-running controversy in the open source community has to do with device drivers and whether binary modules (proprietary code provided by device manufacturers, such as Nvidia) should be allowed within the Linux kernel. Purists believe that including these closed-source driver modules violates the open source General Public License (GPL). Some kernel contributors have even called for an outright ban of these binary modules, which has met with resistance from the more practical-minded in the Linux community, notably by Linus Torvalds himself, who reportedly called it both “shortsighted” and “stupid.”

Obviously, limiting users of the Linux kernel only to the open source drivers that are available is not preferable. Linux aficionados want to use any hardware they darn well please, whether or not they have to use a closed-source driver to support it.

Riding into the breach between the purists and pragmatic, the Linux Driver Project launched in early 2007, headed up by Greg Kroah-Hartman. The LDP proposes a compromise, offering to device manufacturers:

…a group of Linux kernel developers (over 200 strong) and project managers (over 10) that develop and maintain Linux kernel drivers. We work with the manufacturers of the specific device to specify, develop, submit to the main kernel, and maintain the kernel drivers. We are willing and able to sign NDAs with companies if they wish to keep their specifications closed, as long as we are able to create a proper GPLv2 Linux kernel driver as an end result.

I read about this ongoing project in an interesting article from IT Pro in the UK, whose author Richard Hillesley makes the argument: “Open source drivers will become an imperative, rather than a choice, for device manufacturers who want to break into new markets and extend their user base.” Hillesley makes his argument for why manufacturers should drop their resistance to open source drivers (or at least, take advantage of the LDP’s offer) and reap the benefits of better maintenance, support, and the distributed costs of development.