Abstract

In 2001, Chou et al. published a study of faults found by applying
a static analyzer to Linux versions 1.0 through 2.4.1. A major result of
their work was that the drivers directory contained up to 7 times
more of certain kinds of faults than other directories. This result
inspired a number of development and research efforts on improving the
reliability of driver code. Today Linux is used in a much wider
range of environments, provides a much wider range of services, and has
adopted a new development and release model. What has been the impact of
these changes on code quality? Are drivers still a
major problem?

To answer these questions, we have transported the experiments of Chou
et al. to Linux versions 2.6.0 to 2.6.33, released between late 2003
and early 2010. We find that Linux has more than doubled in size
during this period, but that the number of faults per line of code has been
decreasing. And, even though drivers still accounts for a large part
of the kernel code and contains the most faults, its fault rate is now
below that of other directories, such as arch (HAL) and fs
(file systems). These results can guide further development and
research efforts. To enable others to continually update these results as
Linux evolves, we define our experimental protocol and make our checkers
and results available in a public archive.

Slides

Presentation in PDF
This page contains references to the material related to our
publication "Faults in Linux: Ten Years Later":