TJR Forum

Home arrow Two-minute stories arrow Open specifications > open source
Open specifications > open source PDF Print E-mail
Written by Jem Matzan   
Sep 05, 2007 at 11:38 AM

A preliminary report on LWN.net indicates that AMD will soon release the hardware specifications for its graphics chips, starting with the R500 onward. If this is both true and accurate, this is the best news the open source world has had in a long time. Open source drivers can be mostly or totally useless, but open hardware specifications -- those that are made available by the manufacturer and do not require a non-disclosure agreement -- enable the entire open source operating system world to write good drivers.

Last year I wrote a lengthy piece about OpenBSD's quest for hardware specifications. I link to it frequently because it shows the real front line in the open source operating system world, and explains why and how the effort to write new hardware drivers is getting much more difficult. One of the things I learned that really surprised me while doing interviews for that article and the one on the OLPC proprietary hardware fiasco (both articles came from the same set of interviews and the same body of research) was that open, complete, and accurate specifications for hardware are far more important than an open source driver for the same. You can have all of the source code to a driver, but if you don't have the hardware specs, it is very difficult to figure out what the code does. It's like trying to do component-level modifications to a motherboard without a schematic -- you could probably do it, given experience, time, and enough resources to fail dozens of times, but why would you want to?

Secondly, open driver source code may not be any good, or directly usable by anything other than the platform it was intended for. It's possible that the driver is horribly written, in which case you might be better off writing it from scratch anyway. While it certainly helps to be able to look at someone else's driver code to figure out how to safely, securely, and efficiently interact with the hardware, the code for a FreeBSD driver will be almost entirely unusable in the Linux kernel, and even other BSD projects. The various abilities of each operating system kernel conform to different design philosophies, most notably in memory allocation, process scheduling, security, and threading models. That's not to mention the free software and open source licensing issues surrounding copied driver code, which has caused much trouble lately. Aside from technical and licensing barriers, many operating system developers would simply prefer to write their own code rather than use someone else's.

When you have open and complete hardware specs, nobody is left out. Linux is the biggest player in the open source world and is most likely to get it an open source driver before any other Unix-like operating system. Sun could probably manage to arrange something for Solaris as well, but Sun's history says that they'd more likely pay to develop a proprietary driver instead. FreeBSD is always on the cusp -- it has proprietary Nvidia drivers, for instance, but they've never worked as well as they do on Linux. OpenBSD doesn't want anyone's binary drivers, not that there are any available for it anyway, so it's totally left out of the video driver game. Open specifications give every operating system the same, standard resources to work with -- and nobody gets left out.

Discuss this article or get technical support on our forum.

Copyright 2007 JEM Electronic Media, Inc. No reprints without written permission.

<Previous   Next>

The Jem Report is part of the JEM Electronic Media network of information technology Web sites.
Spammers can email us here