Faults in linux
Published 5 March 2011
Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calvès, Julia Lawall, Gilles Muller
Citations194
Generate an AI Snapshot to get a quick, structured summary of this paper.
Study Snapshot
ObjectiveStudy objective
MethodsResearch methodology
PopulationPopulation studied
Sample sizeSample sizes
OutcomesStudy outcomes here
ResultsStudy results comes here
LimitationsResearch study limitations comes here
A concise AI-generated summary of the paper will appear here once you click Generate AI Snapshot.
TL;DR
It is found 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).
Abstract
International audience
Keywords
Computer Science
Choice Reviews OnlineThe cathedral and the bazaar: musings on Linux and open source by an accidental revolutionary
2,294 Citations2002
Learning from mistakes
892 Citations2008Shan Lu, Soyeon Park +2 more
This study carefully examined concurrency bug patterns, manifestation, and fix strategies of 105 randomly selected real world concurrency bugs from 4 representative server and client open-source applications and reveals several interesting findings that provide useful guidance for concurrency Bug detection, testing, and concurrent programming language design.
Use of relative code churn measures to predict system defect density
748 Citations2005Nachiappan Nagappan, Thomas Ball
A technique for early prediction of system defect density using a set of relative code churn measures that relate the amount of churn to other variables such as component size and the temporal extent of churn, which shows that while absolute measures of code chum are poor predictors of defect density, these measures are highly predictive of defectdensity.
An empirical study of operating systems errors
718 Citations2001Andy Chou, Junfeng Yang +3 more
A study of operating system errors found by automatic, static, compiler analysis applied to the Linux and OpenBSD kernels found that device drivers have error rates up to three to seven times higher than the rest of the kernel.
PR-Miner
432 Citations2005Zhenmin Li, Yuanyuan Zhou
This paper proposes a general method called PR-Miner that uses a data mining technique called frequent itemset mining to efficiently extract implicit programming rules from large software code written in an industrial programming language such as C, requiring little effort from programmers and no prior knowledge of the software.
Documenting and automating collateral evolutions in linux device drivers
190 Citations2008Yoann Padioleau, Julia Lawall +2 more
This paper presents an automatic program transformation tool Coccinelle, for documenting and automating device driver collateral evolutions, and uses a language based on the patch syntax to express transformations, extending patches to semantic patches.
Journal of Systems and SoftwareConstruction and testing of polynomials predicting software maintainability
181 Citations1994Paul Oman, J.R. Hagemeister
The maintainability assessment polynomials presented here are accurate models of the test data on which they were constructed and are automated working models that can be used to quickly and easily predict software maintainability.
Code churn: a measure for estimating the impact of code change
152 Citations2002John C. Munson, Sebastian Elbaum
This study presents a methodology that will produce a viable fault surrogate and demonstrates the effectiveness of code complexity churn by validating it against the testing problem reports.
ACM Transactions on Computer SystemsRecovering device drivers
136 Citations2006Michael M. Swift, Muthukaruppan Annamalai +2 more
A new mechanism is presented that enables applications to run correctly when device drivers fail and assumes the role of the failed driver during recovery, and imposes minimal performance overhead.
Journal of Systems and SoftwareThe Linux kernel as a case study in software evolution
130 Citations2009Ayelet Israeli, Dror G. Feitelson
It is found that the data supports several of Lehman's laws, mainly those concerned with growth and with the stability of the process, and makes some novel observations, e.g. that the average complexity of functions is decreasing with time, but this is mainly due to the addition of many small functions.
An overview of the saturn project
114 Citations2007Alex Aiken, Suhabe Bugrara +4 more
It is argued that the combination of summaries and constraints allows Saturn to achieve both great scalability and great precision, while the use of a logic programming language with constraints allows for succinct, high-level expression of program analyses.
Otherworld
75 Citations2010Alex Depoutovitch, Michael Stumm
It is shown that Otherworld is capable of successfully microrebooting the kernel and restoring the applications in over 97% of the cases and can be applied to all commodity operating systems.
Fault isolation for device drivers
61 Citations2009Jorrit N. Herder, Herbert Bos +3 more
The principles and practice of isolating low-level device drivers in order to improve OS dependability are explored and how fault propagation in the event a bug is triggered can be prevented are explored.
WYSIWIB: A declarative approach to finding API protocols and bugs in Linux code
60 Citations2009Julia L. Lawall, Julien Brunel +4 more
This work proposes a declarative approach to bug finding in Linux OS code using a control-flow based program search engine, called WYSIWIB (What You See Is Where It Bugs), since the programmer expresses specifications for bug finding using a syntax close to that of ordinary C code.
Research Portal (King's College London)A Foundation for Flow-Based Program Matching Using Temporal Logic and Model Checking
57 Citations2009Julien Brunel, Damien Doligez +3 more
ACM SIGOPS Operating Systems ReviewIntroducing technology into the Linux kernel
23 Citations2008Paul E. McKenney, Jonathan Walpole
The RCU API's evolution over time clearly shows that Linux's extremely diverse set of workloads and platforms has changed RCU to a far greater degree than RCU has changed Linux---and it is reasonable to expect that other technologies that might be proposed for inclusion into Linux would face similar challenges.
Tracking code patterns over multiple software versions with Herodotos
22 Citations2010Nicolas Palix, Julia Lawall +1 more
This work proposes a tool, Herodotos, that semi-automatically tracks pattern occurrences over multiple versions of a software project, independent of other changes in the source files, and compares the evolution of the selected projects and defect kinds over time.
A foundation for flow-based program matching
20 Citations2009Julien Brunel, Damien Doligez +3 more
This paper proposes an extension to CTL named CTLVW (CTL with variables and witnesses) that is a suitable basis for the semantics and implementation of the Coccinelles program matching language, and formalizes and describes its use in the context of Coccinelle.
Why software hangs and what can be done with it
16 Citations2010Xiang Song, Haibo +1 more
This paper studies the reported hang-related bugs of four typical open-source software applications to gain insight into characteristics of software hang and provide some guidelines to fix them at the first place or remedy them in production runs.
HAL (Le Centre pour la Communication Scientifique Directe)Herodotos: A Tool to Expose Bugs' Lives
2 Citations2009Nicolas Palix, Julia Lawall +1 more
Herodotos semi-automatically tracks defects over multiple versions of a software project, independent of other changes in the source files, and builds a graphical history of each defect and gives some statistics based on the results.
