The Free Software Movement and UDI

A project called UDI (Uniform Driver Interface) aims to define a single interface between operating system kernels and device drivers. What should the free software movement make of this idea?

If we imagine a number of operating systems and hardware developers, all cooperating on an equal footing, UDI (if technically feasible) would be a very good idea. It would permit us to develop just one driver for any given hardware device, and then all share it. It would enable a higher level of cooperation.

When we apply the idea to the actual world, which contains both free software developers seeking cooperation, and proprietary software developers seeking domination, the consequences are very different. No way of using UDI can benefit the free software movement. If it does anything, it will divide and weaken us.

If Linux supported UDI, and if we started designing new drivers to communicate with Linux through UDI, what would the consequences be?

Given these consequences, it is no surprise that Intel, a supporter of UDI, has started to “look to the Linux community for help with UDI.” How does a rich and self-seeking company approach a cooperating community? By asking for a handout, of course. They have nothing to lose by asking, and we might be caught off guard and say yes.

Cooperation with UDI is not out of the question. We should not label UDI, Intel, or anyone, as a Great Satan. But before we participate in any proposed deal, we must judge it carefully, to make sure it is advantageous for the free software community, not just for proprietary system developers. On this particular issue, that means requiring that cooperation take us a step further along a path that leads to the ultimate goal for free kernels and drivers: supporting all important hardware with free drivers.

One way to make a deal a good one could be by modifying the UDI project itself. Eric Raymond has proposed that UDI compliance could require that the driver be free software. That would be ideal, but other alternatives could also work. Just requiring source for the driver to be published, and not a trade secret, could do the job—because even if that driver is not free, it would at least tell us what we need to know to write a free driver.

Intel could also do something outside of UDI to help the free software community solve this problem. For example, there may be some sort of certification that hardware developers seek, that Intel plays a role in granting. If so, Intel could agree to make certification more difficult if the hardware specs are secret. That might not be a complete solution to the problem, but it could help quite a bit.

One difficulty with any deal with Intel about UDI is that we would do our part for Intel at the beginning, but Intel's payback would extend over a long time. In effect, we would be extending credit to Intel. But would Intel continue to repay its loan? Probably yes, if we get it in writing and there are no loopholes; otherwise, we can't count on it. Corporations are notoriously untrustworthy; the people we are dealing with may have integrity, but they could be overruled from above, or even replaced at any time with different people. Even a CEO who owns most of the stock can be replaced through a buy-out. When making a deal with a corporation, always get a binding commitment in writing.

It does not seem likely that Intel would offer a deal that gives us what we need. In fact, UDI seems designed to make it easier to keep specifications secret.

Still, there is no harm in keeping the door unlocked, as long as we are careful about who we let in.