Maintaining Linux: the role of "current"

We examined 249 versions of Linux, and performed definition-use analysis to determine the role played by global variable current in each version. We examined three versions of Linux in detail: versions 7.2.0, 2.2.10, and 2.4.20. For each of those versions, we display the common coupling induced by current within that version using a graphical notation that reflects definitions and uses. We also measured the relationship between the number of instances of current and the size of Linux. We found that the number of instances increased much faster than the size of the kernel but slower than the total size of the product. Furthermore, nonkernel modules were the major source of the increase of instances of global variable current. These increases were largely within nonkernel folder arch, which contains architecture-dependent source code, and in nonkernel folder drivers, which contains all the driver programs. Consequently, as more drivers are added to Linux and as more platforms are supported, problems with maintainability caused by current will be exacerbated.

[1]  Stephen R. Schach,et al.  Categorization of common coupling and its application to the maintainability of the Linux kernel , 2004, IEEE Transactions on Software Engineering.

[2]  Stephen R. Schach On the Nonmaintainability of Open-Source Software , 2002 .

[3]  Lionel C. Briand,et al.  A comprehensive empirical validation of design measures for object-oriented systems , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[4]  Theo Härder,et al.  New Approaches to Object Processing in Engineering Databases , 1986, OODBS.

[5]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[6]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

[7]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[8]  A. Jefferson Offutt,et al.  A software metric system for module coupling , 1993, J. Syst. Softw..

[9]  Eric S. Raymond,et al.  The cathedral and the bazaar - musings on Linux and Open Source by an accidental revolutionary , 2001 .

[10]  Stuart H. Zweben,et al.  Measuring the quality of structured designs , 1981, J. Syst. Softw..

[11]  Stephen R. Schach,et al.  Quality Impacts of Clandestine Common Coupling , 2003, Software Quality Journal.

[12]  Sallie M. Henry,et al.  Software quality metrics based on interconnectivity , 1981, J. Syst. Softw..

[13]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[14]  Stephen R. Schach,et al.  Maintainability of the Linux kernel , 2002, IEE Proc. Softw..