Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
USENIX Technical Program - Abstract - USENIX 99

Standalone Device Drivers in Linux

Theodore Ts'o, MIT


Traditionally, Unix device drivers have been developed and distributed inside the kernel. There are a number of good reasons why this method is the predominant way most device drivers are distributed. First of all, it simplifies the packaging and distribution issues for the device driver. Secondly, it makes it easier to make changes to the interfaces between the kernel and the device drivers.

However, this traditional scheme has a number of major disadvantages. First of all, it means that each version of the device driver is linked to a specific version of the kernel. So if a device is only supported in a development release, a customer who might otherwise want to use a stable, production release might be forced to use a bleeding-edge system. Alternatively, there may be bugs present in the device driver as included in the stable release of the kernel, but which are fixed in the development kernel.

Moreover, including device drivers with the kernel is not scalable in the long term. If Linux-like 1 systems are ever to be able to support as many devices as various OS's from Redmond, Washington, hardware manufacturers will have to be able to support and distribute drivers separately from the main kernel distribution. Currently, the size of the total Linux kernel source base has been doubling (roughly) every 18 months. Almost all of this growth has been the result of new device drivers. If Linux is to be successful at Linus Torvald's goal of Total World Domination, it will be essential that we remove any limits to growth, and an exponential growth in the size of the Linux kernel is an obviously a long-term growth limitation.

  • View the full text of this paper in PDF form.

  • If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.

  • To become a USENIX Member, please see our Membership Information.

?Need help? Use our Contacts page.

Last changed: 13 Mar 2002 ml
FREENIX Technical Program
Conference index