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?
- People could run free GPL-covered Linux drivers with Windows systems.
This would help only Windows users; it would do nothing for us users of free operating systems. It would not directly hurt us, either; but the developers of GPL-covered free drivers could be discouraged to see them used in this way, and that would be very bad. It can also be a violation of the GNU GPL to link the drivers into a proprietary kernel. To increase the temptation to do so is asking for trouble.
- People could run non-free Windows drivers
on GNU/Linux systems.
This would not directly affect the range of hardware supported by free software. But indirectly it would tend to decrease the range, by offering a temptation to the millions of GNU/Linux users who have not learned to insist on freedom for its own sake. To the extent that the community began to accept the temptation, we would be moving to using non-free drivers instead of writing free ones.
UDI would not in itself obstruct development of free drivers. So if enough of us rejected the temptation, we could still develop free drivers despite UDI, just as we do without UDI.
But why encourage the community to be weaker than it needs to be? Why make unnecessary difficulties for the future of free software? Since UDI does no good for us, it is better to reject UDI.
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.