James Bottomley
Linux Foundation Technical Advisory Board Chair and SCSI Maintainer
The purpose of this essay is to illustrate by example the strengths and weaknesses of the open source development model versus the binary driver one.
The three graphics drivers in question are Intel, ATI and Nvidia. Between them they account for a majority of the graphics market (on all operating systems, not just Linux). History Intel initially got into the graphics market in 1997 with the i740 graphics card. Later, in 1999 as it saw itself losing market share, it moved to the i810 integrated graphics driver trying both to leverage it's chipset market as well as the cheapness of integrated components to remain a player in the graphics space. Starting with the i810, Intel outsourced the driver to Tungsten Graphics, but commissioned it as an open source one for Linux. Both ATI and Nvidia graphics cards initially had poor support on Linux (mainly from either very old devices whose documentation was eventually released or which were reverse engineered). Eventually, in response to the criticism from the growing Linux market, both ATI and Nvidia began to produce drivers specifically for Linux in binary form. However, for whatever reason, these Linux drivers were never as functional as the corresponding Windows drivers for the same hardware and as graphics devices have become more sophisticated and powerful, the gap between the Linux and the windows drivers has grown. It can be argued that graphics driver problems are one of the main inhibitors to Linux desktop adoption. Certainly the number one complaint for a long time was the amount of configuration and tweaking you had to do just to get a windowing system up and running on Linux. Worse still, the fact that device coverage was spotty coupled with a lag getting drivers for the newer devices meant that given any computer, there was always a chance that the graphical windowing system wouldn't work. Worse that chance increased drastically with brand new hardware.
Around 2005, Intel took the decision to dominate the Linux graphics market using the Open Source philosophy. It formed a team within its Open Source Technology centre to work with the community to produce and distribute drivers for all of its graphics chips which were released to the world in 2006. This strategy has been resoundingly successful in that today the best way to get a laptop that will work with Linux involves the simple question “does it have Intel integrated graphics” rather than having to get the graphics specs before purchase and check a variety of sources to see what the support is (or indeed whether it is likely to work at all). Furthermore, from Intel's point of view it can take advantage of co-operative interactions with open source developers to get its drivers developed and tested. This is particularly advantageous from a QA cost perspective, because it allows a comparatively small team to develop and test the driver within Intel on a wide ranging (but not exhaustive) set of hardware and rely on the open source community for feedback and even fixes on other hardware in the field. This strategy allows Intel to get a much greater return on its engineering investment than if it had to employ a large team to work on supporting binary drivers in all Linux variants.
Unfortunately, using Intel integrated graphics means using Intel chipsets, which means using Intel processors, and it had low 3D performance.
ATI remained firmly in the binary driver camp up until September 2007 when, pushed by the success of Intel, its declining market share and by its acquisition by AMD to be more open source, it contracted with Novell to develop from scratch an open source version of its drivers called radeonhd. As part of this development effort it began to release publicly the documentation Novell was using to do the port. One of the side effects of this was that when there was an argument between the radeonhd team at Novell and the graphics development team at X.org (the keepers of the X window system) over the strategic and design direction of the radeonhd driver, members of the Xorg team were able to resume development of the original ati driver using the now released documentation to give it identical features to the radeonhd driver but using their design principles. In 2008 ATI recognised the value of this rival development by hiring one of the Xorg developers to work for them full time to help their Open Source driver effort.
Nvidia, at the time of writing, is still firmly in the Binary Only camp. Although there is a serious reverse engineering project called Nouveau underway to try and produce an open source driver for modern Nvidia hardware.