In association with heise online

The outer limits

In his history of the GNU project, Richard Stallman wrote: "Even if GNU had no technical advantage over Unix, it would have a social advantage, allowing users to cooperate, and an ethical advantage, respecting the user's freedom."

The incidental benefit is that free and open source software has both an ethical and a technical advantage. Free software works, and attracts developers – and for this reason has become popular in the most unlikely of places. Everybody wants to profit from a slice of the action, but not always for the best of reasons.

The GPL may be uniquely effective as a free software licence that "fights fire with fire" and is designed to guarantee the freedom of the code in perpetuity, but lawyers and start-ups, open source companies and corporate 'owners' of free software projects have found ways to use copyright assignment, open core licensing and legal indemnifications to work around the spirit of the licence, usually in the name of 'open source'.

"There is a big problem in that there are folk around who think that open source is nothing to do with software freedom," says Phipps, "but you must never forget that the goal is software freedom. The folk that do 'open core', not all of them, but some of them, seem to think that open source is an objective in its own right, and can be evaluated independently of software freedom, and as such, can be gamed. Open core is a game on software freedom."

"Business needs objective benefits, and open source was created to give concrete rules about licences and articulate the concrete benefits for businesses of delivering software freedom, but you don't want to diminish from software freedom as a set of principles that individuals need to embrace," whether they use the label of 'open source' or 'free software'. Open core licensing is not a matter of pragmatism, but a game on software freedom that has little to do with either open source or free software.

Most practitioners of free and open source software are idealistic or pragmatic when it suits. When it comes to software, many developers share the values of Stallman or Theo de Raadt (the equivalent figure in the world of BSD) even where they might diverge from the practice or expression of those values.

Pragmatism is generally perceived to be good because it allows give and take. Pragmatists accept and work with the current reality, and idealists try to change the current reality so it works in their favour. Cohen suggests that "successful movements need both Stallmans and Torvalds," the idealists and the pragmatists, "as uneasily as they may coexist."

As Oriol Mirosa expresses it, "pragmatism is necessary to advance the spread of ideas. But there are limits. Sometimes under the banner of pragmatism we compromise, water down, adapt, or sometimes completely give up some of our ideas. The risk is always there, and I do not want world domination by free software if, along the way, we have lost the key features that make free software something I believe in."

Welcome to the real world, kid

The dilemma for users and developers of free and open source software is that there is always a divide between what we want and what we have, and if we merely accept what we have, there is no incentive to reach for the better idea.

People use Wine to run proprietary software on their Linux distributions, and the Linux kernel is released with a limited number of 'binary blobs' for RAID controllers, accelerated graphics drivers and networking devices. Binary blobs do not comply with the kernel licence, but no-one is going to sue the kernel developers, and the contradictions are ignored by most users. OpenBSD, the project begun by Theo de Raadt, doesn't allow proprietary blobs, and neither does gNewSense, but the problem with this approach is that it puts limitations on the hardware we can use.

Back in 2006, Martin Bligh wrote on the Linux kernel list "let's come out and ban binary modules, rather than pussyfooting around," to which Andrew Morton responded that companies should be given "12 months warning (time to work out what they're going to do, talk with the legal dept, etc) then make the kernel load only GPL-tagged modules. I think I'd favour that. It would aid those people who are trying to obtain device specs, and who are persuading organisations to GPL their drivers."

Linus Torvalds felt that this would alienate device manufacturers and users, and took the 'pragmatic' view that the device manufacturers shouldn't be forced to comply with the wishes of the kernel community. "I happen to believe that there shouldn't be technical measures that keep me from watching my DVD or listening to my music on whatever device I damn well please," he wrote. "Fair use, man. But it should go the other way too: we should not try to assert our copyright rules on other peoples code that wasn't derived from ours, or assert our technical measures that keep people from combining things their way."

In another world

But there was a response that was both idealistic and pragmatic. Greg Kroah-Hartman created the Linux Driver Project and issued an offer to device manufacturers. "The Linux kernel community," he wrote, "is offering all companies free Linux driver development. No longer do you have to suffer through all of the different examples in the Linux Device Driver Kit, or pick through the thousands of example drivers in the Linux kernel source tree trying to determine which one is the closest to what you need to do."

"All that is needed is some kind of specification that describes how your device works, or the email address of an engineer that is willing to answer questions every once in a while. A few sample devices might be good to have so that debugging doesn't have to be done by email, but if necessary, that can be done."

"In return, you will receive a complete and working Linux driver that is added to the main Linux kernel source tree. The driver will be written by some of the members of the Linux kernel developer community (over 1,500 strong and growing). This driver will then be automatically included in all Linux distributions, including the 'enterprise' ones. It will be automatically kept up to date and working through all Linux kernel API changes. This driver will work with all of the different CPU types supported by Linux, the largest number of CPU types supported by any operating system ever before in the history of computing."

NVIDIA is the vendor most often identified by Linux users for its refusal to provide open source drivers. Competitors such as Via and ATI have made the leap. The irony of the position taken by NVIDIA is that Red Hat, HP and DreamWorks have worked in partnership with NVIDIA to develop Linux binary drivers for its products; NVIDIA has gained prestige and market share on Linux in the film special effects industry. Indeed, NVIDIA's success in this market illustrates why the provision of high quality device drivers for Linux is as important for the manufacturers as it is for end users.

Linux use is expanding in new and developing markets. Vendors that provide closed-source kernel modules force their customers to give up key Linux advantages or choose new vendors. The choice is likely to be the latter, and the provision of open source device drivers is fast becoming an imperative, rather than a choice, for device manufacturers who want to break into new markets and extend their user base.

Pragmatism does not always mean having to compromise your principles.

Next: Defiant idealism

Print Version | Permalink:
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit