Faults in Linux: Ten Years Later
Résumé
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, however, 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 attempted to transport, based on the information provided, 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 even if Linux has more than doubled in size during this period, 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). Such information can guide further development and research efforts. To enable others to continually update the results as Linux evolves, we define our experimental protocol and make our checkers and results available in a public archive.
En 2001, Chou et al. ont publié une étude sur les fautes trouvées par analyse statique dans les versions 1.0 à 2.4.1 de Linux. Un résultat majeur de cette étude est que le répertoire drivers contenait jusqu'à 7 fois plus de fautes que d'autres répertoires. Ce résultat a inspiré de nombreux travaux de recherche afin d'améliorer la fiabilité du code des pilotes. Toutefois, Linux est utilisé à l'heure actuelle dans des environnements plus variés, il fourni plus de services, et un nouveau modèle de développement a été adopté. Quel sont l'impact de ces changements sur la qualité du code? Les pilotes sont ils toujours un problème majeur? Afin de répondre à ces questions, nous avons entrepris de transposer les expériences de Chou et al. aux versions de Linux 2.6.0 à 2.6.33, parues entre fin 2003 et début 2010. Nous observons que même si la taille de Linux à plus que doublée durant cette période, le nombre de fautes par ligne de code a diminué. Même si les pilotes représentent toujours une part importante du code du noyau et contiennent le plus de fautes, leur taux de fautes est maintenant inférieur à celui d'autres répertoires, comme arch (couche d'abstraction matérielle) et fs (systèmes de fichiers). De telles informations peuvent guider de nouveau travaux de recherche et développement. Afin de permettre une mise à jour de ces ces résultats par des tiers au fur et à mesure de l'évolution de Linux, nous définissons notre protocole d'expérimentation et rendons nos outils de vérifications ainsi que nos résultats disponibles dans une archive publique.
Domaines
Système d'exploitation [cs.OS]
Fichier principal
RR-7357.pdf (570.85 Ko)
Télécharger le fichier
10years.sql.pg_dump (122.2 Mo)
Télécharger le fichier
10years.sql_dump (565.97 Mo)
Télécharger le fichier
10years_patches_and_results.tbz2 (1.3 Mo)
Télécharger le fichier
10years_tools.tar.bz2 (2.24 Mo)
Télécharger le fichier
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Format | Autre |
---|
Format | Autre |
---|
Format | Autre |
---|
Format | Autre |
---|
Loading...