{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,23]],"date-time":"2026-09-23T11:42:44Z","timestamp":1790163764761,"version":"4.1.0"},"reference-count":52,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2014,6,1]],"date-time":"2014-06-01T00:00:00Z","timestamp":1401580800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2014,6]]},"abstract":"<jats:p>In August 2011, Linux entered its third decade. Ten years before, 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 numerous efforts on improving the reliability of driver code. Today, Linux is used in a wider range of environments, provides a wider range of services, and has adopted a new development and release model. What has been the impact of these changes on code quality?<\/jats:p>\n          <jats:p>To answer this question, we have transported Chou et al.\u2019s experiments to all versions of Linux 2.6; released between 2003 and 2011. We find that Linux has more than doubled in size during this period, but the number of faults per line of code has been decreasing. Moreover, the fault rate of drivers is now below that of other directories, such as arch. These results can guide further development and research efforts for the decade to come. To allow updating these results as Linux evolves, we define our experimental protocol and make our checkers available.<\/jats:p>","DOI":"10.1145\/2619090","type":"journal-article","created":{"date-parts":[[2014,7,8]],"date-time":"2014-07-08T12:20:08Z","timestamp":1404822008000},"page":"1-40","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["Faults in Linux 2.6"],"prefix":"10.1145","volume":"32","author":[{"given":"Nicolas","family":"Palix","sequence":"first","affiliation":[{"name":"Grenoble - Alps University\/UJF, LIG-Erods"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Ga\u0113l","family":"Thomas","sequence":"additional","affiliation":[{"name":"Inria\/UPMC\/Sorbonne University\/LIP6-Regal"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Suman","family":"Saha","sequence":"additional","affiliation":[{"name":"Inria\/UPMC\/Sorbonne University\/LIP6-Regal"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christophe","family":"Calv\u00e8s","sequence":"additional","affiliation":[{"name":"Inria\/UPMC\/Sorbonne University\/LIP6-Regal"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gilles","family":"Muller","sequence":"additional","affiliation":[{"name":"Inria\/UPMC\/Sorbonne University\/LIP6-Regal"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Julia","family":"Lawall","sequence":"additional","affiliation":[{"name":"Inria\/UPMC\/Sorbonne University\/LIP6-Regal"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2014,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1251535.1251543"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070550"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480897"},{"key":"e_1_2_1_4_1","unstructured":"CDHSE. 2009. How is the department of homeland security involved? http:\/\/scan.coverity.com\/faq.html&num;how-department-homeland-security-involved.  CDHSE. 2009. How is the department of homeland security involved? http:\/\/scan.coverity.com\/faq.html&num;how-department-homeland-security-involved."},{"key":"e_1_2_1_5_1","unstructured":"Checkpatch. 2006. Checkpatch. http:\/\/www.codemonkey.org.uk\/projects\/checkpatch\/.  Checkpatch. 2006. Checkpatch. http:\/\/www.codemonkey.org.uk\/projects\/checkpatch\/."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502042"},{"key":"e_1_2_1_7_1","volume-title":"Comedi: Linux control and measurement device interface","year":"1999","unstructured":"Comedi. 1999 . Comedi: Linux control and measurement device interface . http:\/\/www.comedi.org\/. Comedi. 1999. Comedi: Linux control and measurement device interface. http:\/\/www.comedi.org\/."},{"key":"e_1_2_1_8_1","unstructured":"Jonathan Corbet. 2010a. The age of kernel code in various subsystems. http:\/\/lwn.net\/Articles\/374622\/.  Jonathan Corbet. 2010a. The age of kernel code in various subsystems. http:\/\/lwn.net\/Articles\/374622\/."},{"key":"e_1_2_1_9_1","unstructured":"Jonathan Corbet. 2010b. How old is our kernel? http:\/\/lwn.net\/Articles\/374574\/.  Jonathan Corbet. 2010b. How old is our kernel? http:\/\/lwn.net\/Articles\/374574\/."},{"key":"e_1_2_1_10_1","unstructured":"Coverity. 2008. Static source code analysis static analysis software quality tools by Coverity Inc. http:\/\/www.coverity.com\/.  Coverity. 2008. Static source code analysis static analysis software quality tools by Coverity Inc. http:\/\/www.coverity.com\/."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755933"},{"key":"e_1_2_1_12_1","unstructured":"Fedora. 2013. Fedora project. http:\/\/fedoraproject.org\/.  Fedora. 2013. Fedora project. http:\/\/fedoraproject.org\/."},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 39th Annual International Conference on Dependable Systems and Networks (DSN\u201909)","author":"Herder Jorrit N.","unstructured":"Jorrit N. Herder , Herbert Bos , Ben Gras , Philip Homburg , and Andrew S. Tanenbaum . 2009. Fault isolation for device drivers . In Proceedings of the 39th Annual International Conference on Dependable Systems and Networks (DSN\u201909) . IEEE\/IFIP, 33--42. Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum. 2009. Fault isolation for device drivers. In Proceedings of the 39th Annual International Conference on Dependable Systems and Networks (DSN\u201909). IEEE\/IFIP, 33--42."},{"key":"e_1_2_1_14_1","unstructured":"IEEE. 1988. IEEE guide for the use of IEEE standard dictionary of measures to produce reliable software. http:\/\/standards.ieee.org\/findstds\/standard\/982.2-1988.html.  IEEE. 1988. IEEE guide for the use of IEEE standard dictionary of measures to produce reliable software. http:\/\/standards.ieee.org\/findstds\/standard\/982.2-1988.html."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.09.042"},{"key":"e_1_2_1_16_1","volume-title":"Proceedings of the 10th Working Conference on Mining Software Repositories (MSR\u201913)","author":"Jiang Yujuan","unstructured":"Yujuan Jiang , Bram Adams , and Daniel M. Germ\u00e1n . 2013. Will my patch make it? And how fast? Case study on the Linux kernel . In Proceedings of the 10th Working Conference on Mining Software Repositories (MSR\u201913) . IEEE\/ACM, 101--110. Yujuan Jiang, Bram Adams, and Daniel M. Germ\u00e1n. 2013. Will my patch make it? And how fast? Case study on the Linux kernel. In Proceedings of the 10th Working Conference on Mining Software Repositories (MSR\u201913). IEEE\/ACM, 101--110."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1080\/01621459.1958.10501452"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2525528.2525530"},{"key":"e_1_2_1_19_1","unstructured":"Kernel Janitors. 2010. Smatch the source matcher. http:\/\/smatch.sourceforge.net.  Kernel Janitors. 2010. Smatch the source matcher. http:\/\/smatch.sourceforge.net."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2102"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081755"},{"key":"e_1_2_1_22_1","volume-title":"LKML: The Linux kernel mailing list","author":"LKML.","year":"2013","unstructured":"LKML. 2013 . LKML: The Linux kernel mailing list . http:\/\/lkml.org\/. LKML. 2013. LKML: The Linux kernel mailing list. http:\/\/lkml.org\/."},{"key":"e_1_2_1_23_1","first-page":"10","article-title":"A study of Linux file system evolution ;login","volume":"38","author":"Lu Lanyue","year":"2013","unstructured":"Lanyue Lu , Andrea C. Arpaci-Dusseau , Remzi H. Arpaci-Dusseau , and Shan Lu . 2013 . A study of Linux file system evolution ;login . USENIX Mag. 38 , 3, 10 -- 17 . Lanyue Lu, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, and Shan Lu. 2013. A study of Linux file system evolution ;login. USENIX Mag. 38, 3, 10--17.","journal-title":"USENIX Mag."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233837"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1400097.1400099"},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of the International Conference Software Maintenance (ICSM\u201998)","author":"John","unstructured":"John C. Munson and Sebastian G. Elbaum. 1998. Code churn: A measure for estimating the impact of code change . In Proceedings of the International Conference Software Maintenance (ICSM\u201998) . IEEE, 24--31. John C. Munson and Sebastian G. Elbaum. 1998. Code churn: A measure for estimating the impact of code change. In Proceedings of the International Conference Software Maintenance (ICSM\u201998). IEEE, 24--31."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/2487085.2487112"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062514"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(94)90067-1"},{"key":"e_1_2_1_31_1","unstructured":"ORG. 2013. Org-mode homepage. http:\/\/orgmode.org\/.  ORG. 2013. Org-mode homepage. http:\/\/orgmode.org\/."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1352592.1352618"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1739230.1739250"},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","unstructured":"Nicolas Palix Suman Saha Ga\u00ebl Thomas Christophe Calv\u00e8s Julia Lawall and Gilles Muller. 2010b. Website of faults in Linux: Ten years later. http:\/\/faultlinux.lip6.fr\/.  Nicolas Palix Suman Saha Ga\u00ebl Thomas Christophe Calv\u00e8s Julia Lawall and Gilles Muller. 2010b. Website of faults in Linux: Ten years later. http:\/\/faultlinux.lip6.fr\/.","DOI":"10.1145\/1950365.1950401"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"Nicolas Palix Suman Saha Ga\u00ebl Thomas Christophe Calv\u00e8s L. Lawall Julia and Gilles Muller. 2010c. Faults in Linux: Ten years later. Res. rep. RR-7357 INRIA. http:\/\/hal.inria.fr\/inria-00509256.  Nicolas Palix Suman Saha Ga\u00ebl Thomas Christophe Calv\u00e8s L. Lawall Julia and Gilles Muller. 2010c. Faults in Linux: Ten years later. Res. rep. RR-7357 INRIA. http:\/\/hal.inria.fr\/inria-00509256.","DOI":"10.1145\/1950365.1950401"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950401"},{"key":"e_1_2_1_37_1","unstructured":"R Core Team. 2014a. The R project for statistical computing. http:\/\/www.r-project.org\/.  R Core Team. 2014a. The R project for statistical computing. http:\/\/www.r-project.org\/."},{"key":"e_1_2_1_38_1","unstructured":"R Core Team. 2014b. Summarizing linear model fits. http:\/\/stat.ethz.ch\/R-manual\/R-patched\/library\/stats\/html\/summary.lm.html.  R Core Team. 2014b. Summarizing linear model fits. http:\/\/stat.ethz.ch\/R-manual\/R-patched\/library\/stats\/html\/summary.lm.html."},{"key":"e_1_2_1_39_1","unstructured":"Eric S. Raymond. 2001. The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O\u2019Reilly and Associates.   Eric S. Raymond. 2001. The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary . O\u2019Reilly and Associates."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542506"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2013.6575307"},{"key":"e_1_2_1_42_1","unstructured":"Doc Searls. 2004. Sparse Linus and the lunatics. http:\/\/www.linuxjournal.com\/article\/7272.  Doc Searls. 2004. Sparse Linus and the lunatics. http:\/\/www.linuxjournal.com\/article\/7272."},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201910)","author":"Song Xiang","year":"2010","unstructured":"Xiang Song , Haibo Chen , and Binyu Zang . 2010 . Why software hangs and what can be done with it . In Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201910) . IEEE\/IFIP, 311--316. Xiang Song, Haibo Chen, and Binyu Zang. 2010. Why software hangs and what can be done with it. In Proceedings of the International Conference on Dependable Systems and Networks (DSN\u201910). IEEE\/IFIP, 311--316."},{"key":"e_1_2_1_44_1","unstructured":"Sparse. 2003. Sparse. https:\/\/sparse.wiki.kernel.org\/.  Sparse. 2003. Sparse. https:\/\/sparse.wiki.kernel.org\/."},{"key":"e_1_2_1_45_1","unstructured":"Brad Spencer. 2009. Local kernel exploit in \/dev\/net\/tun. http:\/\/grsecurity.net\/~spender\/exploits\/cheddar_bay.tgz.  Brad Spencer. 2009. Local kernel exploit in \/dev\/net\/tun. http:\/\/grsecurity.net\/~spender\/exploits\/cheddar_bay.tgz."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1189256.1189257"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10009-012-0225-2"},{"key":"e_1_2_1_48_1","unstructured":"UBUNTU. 2013. Ubuntu. http:\/\/www.ubuntu.com\/.  UBUNTU. 2013. Ubuntu. http:\/\/www.ubuntu.com\/."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522728"},{"key":"e_1_2_1_50_1","unstructured":"David Wheeler. 2006. Flawfinder home page. http:\/\/www.dwheeler.com\/flawfinder\/.  David Wheeler. 2006. Flawfinder home page. http:\/\/www.dwheeler.com\/flawfinder\/."},{"key":"e_1_2_1_51_1","unstructured":"David Wheeler. 2013. SLOCCount. http:\/\/www.dwheeler.com\/sloccount\/.  David Wheeler. 2013. SLOCCount. http:\/\/www.dwheeler.com\/sloccount\/."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1189256.1189259"}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2619090","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2619090","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:55:47Z","timestamp":1750229747000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2619090"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,6]]},"references-count":52,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2014,6]]}},"alternative-id":["10.1145\/2619090"],"URL":"https:\/\/doi.org\/10.1145\/2619090","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"value":"0734-2071","type":"print"},{"value":"1557-7333","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,6]]},"assertion":[{"value":"2014-01-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-06-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}