Is Linux Maintainable?
We present the results of four research projects in empirical open-source software engineering.
First, we describe a longitudinal study of 365 versions of Linux. The number of instances of common coupling grows exponentially with version number, whereas the number of lines of code grows linearly with version number. We conclude that, as Linux grows in size, it will become increasingly hard to maintain.
Second, we give a new categorization of common coupling within the context of kernel-based software, and use it to show that Linux will become extremely hard to maintain in the future.
Third, we compare Linux to three other open-source operating systems: FreeBSD, NetBSD, and OpenBSD. Linux compares unfavorably to the three BSDs with respect to every measure considered, including the total number of global variables, and the total number of instances of global variables in the kernel and overall.
Fourth, we discuss global variable “current” in detail. We show that successive versions of Linux have more instances of “current” and more complex definition–use relations with respect to “current.” We conclude that global variable “current” is strangling Linux.
Stephen R. (“Steve”) Schach is an associate professor of computer science and computer engineering in the Department of Electrical Engineering and Computer Science at Vanderbilt University. He consults internationally on software engineering topics. Steve is the author of some 120 refereed publications and 12 books; the Sixth Edition of his textbook Object-Oriented and Classical Software Engineering was published in 2004. Steve’s current research is in the area of empirical open-source software engineering.
- Stephen R. Schach
- Vanderbilt University