@conference {1007,
	title = {Analysis of the Linux Kernel Evolution Using Code Clone Coverage},
	booktitle = {Fourth International Workshop on Mining Software Repositories (MSR{\textquoteright}07:ICSE Workshops 2007)},
	year = {2007},
	pages = {22 - 22},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Minneapolis, MN, USA},
	abstract = {Most studies of the evolution of software systems are based on the comparison of simple software metrics. In this paper, we present our preliminary investigation of the evolution of the Linux kernel using code-clone analysis and the code-clone coverage metrics. We examined 136 versions of the stable Linux kernel using a distributed extension of the code clone detection tool CCFinder. The result is shown as a heat map.},
	keywords = {ccfinder, clone, cloning, kernel, linux, metrics, source code},
	isbn = {0-7695-2950-X},
	doi = {10.1109/MSR.2007.1},
	attachments = {https://flosshub.org/sites/flosshub.org/files/28300022.pdf},
	author = {Livieri, Simone and Higo, Yoshiki and Matsushita, Makoto and Inoue, Katsuro}
}
@conference {1005,
	title = {Comparing Approaches to Mining Source Code for Call-Usage Patterns},
	booktitle = {Fourth International Workshop on Mining Software Repositories (MSR{\textquoteright}07:ICSE Workshops 2007)},
	year = {2007},
	pages = {20 - 20},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Minneapolis, MN, USA},
	abstract = {Two approaches for mining function-call usage patterns from source code are compared. The first approach, itemset mining, has recently been applied to this problem. The other approach, sequential-pattern mining, has not been previously applied to this problem. Here, a call-usage pattern is a composition of function calls that occur in a function definition. Both approaches look for frequently occurring patterns that represent standard usage of functions and identify possible errors. Itemset mining produces unordered patterns, i.e., sets of function calls, whereas, sequential-pattern mining produces partially ordered patterns, i.e., sequences of function calls. The trade-off between the additional ordering context given by sequential-pattern mining and the efficiency of itemset mining is investigated. The two approaches are applied to the Linux kernel v2.6.14 and results show that mining ordered patterns is worth the additional cost.},
	keywords = {function calls, functions, kernel, linux, sequence, sequencing, sequential-pattern mining},
	isbn = {0-7695-2950-X},
	doi = {10.1109/MSR.2007.3},
	attachments = {https://flosshub.org/sites/flosshub.org/files/28300020.pdf},
	author = {Kagdi, Huzefa and Collard, Michael L. and Maletic, Jonathan I.}
}
@article {Yu:2006:MKO:1150566.1150571,
	title = {Maintainability of the kernels of open-source operating systems: A comparison of Linux with FreeBSD, NetBSD, and OpenBSD},
	journal = {J. Syst. Softw.},
	volume = {79},
	year = {2006},
	note = {"Data regarding the number and total number of lines of code of kernel and nonkernel modules in the four operating systems are provided in Table 1"
loc, kloc, number of kernel modules, number of nonkernel modules
size 
c files
.h files},
	month = {June},
	pages = {807{\textendash}815},
	publisher = {Elsevier Science Inc.},
	address = {New York, NY, USA},
	abstract = {We compared and contrasted the maintainability of four open-source operating systems: Linux, FreeBSD, NetBSD, and OpenBSD. We used our categorization of common coupling in kernel-based software to highlight future maintenance problems. An unsafe definition is a definition of a global variable that can affect a kernel module if that definition is changed. For each operating system we determined a number of measures, including the number of global variables, the number of instances of global variables in the kernel and overall, as well as the number of unsafe definitions in the kernel and overall. We also computed the value of each our measures per kernel KLOC and per KLOC overall. For every measure and every ratio, Linux compared unfavorably with FreeBSD, NetBSD, and OpenBSD. Accordingly, we are concerned about the future maintainability of Linux. },
	keywords = {abiword, Common coupling, coupling, Definition-use analysis, freebsd, kernel, lines of code, linux, linux kernel, loc, Maintainability, modules, netbsd, Open-source software, openbsd, source code},
	issn = {0164-1212},
	doi = {http://dx.doi.org/10.1016/j.jss.2005.08.014},
	url = {http://dx.doi.org/10.1016/j.jss.2005.08.014},
	attachments = {https://flosshub.org/sites/flosshub.org/files/YuSchachChen.pdf},
	author = {Yu, Liguo and Schach, Stephen R. and Chen, Kai and Heller, Gillian Z. and Offutt, Jeff}
}
@conference {Kim:2005:ASC:1083142.1083154,
	title = {Analysis of signature change patterns},
	booktitle = {Proceedings of the 2005 international workshop on Mining software repositories},
	series = {MSR {\textquoteright}05},
	year = {2005},
	pages = {1{\textendash}5},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	abstract = {Software continually changes due to performance improvements, new requirements, bug fixes, and adaptation to a changing operational environment. Common changes include modifications to data definitions, control flow, method/function signatures, and class/file relationships. Signature changes are notable because they require changes at all sites calling the modified function, and hence as a class they have more impact than other change kinds.We performed signature change analysis over software project histories to reveal multiple properties of signature changes, including their kind, frequency, and evolution patterns. These signature properties can be used to alleviate the impact of signature changes. In this paper we introduce a taxonomy of signature change kinds to categorize observed changes. We report multiple properties of signature changes based on an analysis of eight prominent open source projects including the Apache HTTP server, GCC, and Linux 2.5 kernel.},
	keywords = {apache, gcc, kernel, linux, signature change, signature change patterns, software evolution, software evolution path, soure code},
	isbn = {1-59593-123-6},
	doi = {http://doi.acm.org/10.1145/1082983.1083154},
	url = {http://doi.acm.org/10.1145/1082983.1083154},
	attachments = {https://flosshub.org/sites/flosshub.org/files/64AnalysisOfSignature.pdf},
	author = {Kim, Sunghun and Whitehead,Jr., E. James and Bevan, Jennifer}
}
@conference {Antoniol:2005:LPC:1083142.1083156,
	title = {Linear predictive coding and cepstrum coefficients for mining time variant information from software repositories},
	booktitle = {Proceedings of the 2005 international workshop on Mining software repositories},
	series = {MSR {\textquoteright}05},
	year = {2005},
	pages = {74-78},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	abstract = {This paper presents an approach to recover time variant information from software repositories. It is widely accepted that software evolves due to factors such as defect removal, market opportunity or adding new features. Software evolution details are stored in software repositories which often contain the changes history. On the other hand there is a lack of approaches, technologies and methods to efficiently extract and represent time dependent information. Disciplines such as signal and image processing or speech recognition adopt frequency domain representations to mitigate differences of signals evolving in time. Inspired by time-frequency duality, this paper proposes the use of Linear Predictive Coding (LPC) and Cepstrum coefficients to model time varying software artifact histories. LPC or Cepstrum allow obtaining very compact representations with linear complexity. These representations can be used to highlight components and artifacts evolved in the same way or with very similar evolution patterns. To assess the proposed approach we applied LPC and Cepstral analysis to 211 Linux kernel releases (i.e., from 1.0 to 1.3.100), to identify files with very similar size histories. The approach, the preliminary results and the lesson learned are presented in this paper.},
	keywords = {change history, data mining, evolution, files, kernel, linear predictive coding, linux, lpc, size, software evolution, source code},
	isbn = {1-59593-123-6},
	doi = {http://doi.acm.org/10.1145/1082983.1083156},
	url = {http://doi.acm.org/10.1145/1082983.1083156},
	attachments = {https://flosshub.org/sites/flosshub.org/files/74LinearPredictive.pdf},
	author = {Antoniol, Giuliano and Rollo, Vincenzo Fabio and Venturi, Gabriele}
}
@article {flosswp124,
	title = {Maintainability of the Linux Kernel},
	journal = {Proceedings of the 2nd Workshop on Open Source Software Engineering ICSE2002},
	year = {2003},
	note = {"We have examined 365 versions of Linux.  For every version, we counted the number of 
instances of common (global) coupling between each of the 17 kernel modules and all the other 
modules in that version of Linux."},
	month = {October},
	abstract = {We have examined 365 versions of Linux. For every version, we counted the number of instances of common (global) coupling between each of the 17 kernel modules and all the other modules in that version of Linux. We found that the number of instances of common coupling grows exponentially with version number. This result is significant at the 99.99\% level, and no additional variables are needed to explain this increase. We conclude that, unless Linux is restructured with a bare minimum of common coupling, the dependencies induced by common coupling will, at some future date, make Linux exceedingly hard to maintain without inducing regression faults.},
	keywords = {coupling, kernel, linux, linux kernel, modules, source code},
	attachments = {https://flosshub.org/sites/flosshub.org/files/linux-maint_0.pdf},
	author = {Schach, Stephen R. and Jin, B. and Wright, D.R.}
}
@article {65,
	title = {Analyzing cloning evolution in the Linux kernel},
	journal = {Information and Software Technology},
	volume = {44},
	number = {13},
	year = {2002},
	pages = {755-765},
	abstract = {Identifying code duplication in large multi-platform software systems is a challenging problem. This is due to a variety of reasons including the presence of high-level programming languages and structures interleaved with hardware-dependent low-level resources and assembler code, the use of GUI-based configuration scripts generating commands to compile the system, and the extremely high number of possible different configurations. This paper studies the extent and the evolution of code duplications in the Linux kernel. Linux is a large, multi-platform software system; it is based on the Open Source concept, and so there are no obstacles in discussing its implementation. In addition, it is decidedly too large to be examined manually: the current Linux kernel release (2.4.18) is about three million LOCs. Nineteen releases, from 2.4.0 to 2.4.18, were processed and analyzed, identifying code duplication among Linux subsystems by means of a metric-based approach. The obtained results support the hypothesis that the Linux system does not contain a relevant fraction of code duplication. Furthermore, code duplication tends to remain stable across releases, thus suggesting a fairly stable structure, evolving smoothly without any evidence of degradation. (C) 2002 Elsevier Science B.V. All rights reserved.},
	keywords = {cvs, kernel, lines of code, linux, loc, project success, source code},
	url = {web.soccerlab.polymtl.ca/~antoniol/publications/.../infsoft2002.pdf},
	attachments = {https://flosshub.org/sites/flosshub.org/files/infsoft2002.pdf},
	author = {Antoniol, G. and Villano, U. and Merlo, E. and Di Penta, M.}
}
@conference {1154,
	title = {Version Control: A Case Study in the Challenges and Opportunities for Open Source Software Development},
	booktitle = {Proceedings of the 2nd ICSE Workshop on Open Source},
	year = {2002},
	abstract = {The growth of the worldwide open source development effort, driven in part by the recent entrance of large corporations into the open source arena, offers new opportunities to improve the software engineering tools available for that effort. Indeed, the increasing difficulty of managing large open source projects, as well as that of integrating related efforts into new programming environments, represents a challenge that must be met if the rapid growth of open source software is to continue. This position paper addresses these issues in the context of software version control.},
	keywords = {cvs, kernel, linux, linux kernel, version control},
	attachments = {https://flosshub.org/sites/flosshub.org/files/ChuCarrollShieldsWright.pdf},
	author = {Chu-Carroll, M.C. and Sheilds, D. and Wright, J.}
}
@conference {Godfrey:2001:GES:602461.602482,
	title = {Growth, evolution, and structural change in open source software},
	booktitle = {Proceedings of the 4th International Workshop on Principles of Software Evolution (IWPSE 2001)},
	series = {IWPSE {\textquoteright}01},
	year = {2001},
	note = {"We measured [linux] system size in uncommented LOC"
"We also examined the growth of several other open source systems, including the VIM text editor, Eric Raymond{\textquoteright}s fetchmail utility, and the GCC compiler suite. "},
	pages = {103{\textendash}106},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	abstract = {Our recent work has addressed how and why software systems evolve over time, with a particular emphasis on software architecture and open source software systems [2, 3, 6]. In this position paper, we present a short summary of two recent projects. First, we have performed a case study on the evolution of the Linux kernel [3], as well as some other open source software (OSS) systems. We have found that several OSS systems appear not to obey some of "Lehman{\textquoteright}s laws" of software evolution [5, 7], and that Linux in particular is continuing to grow at a geometric rate. Currently, we are working on a detailed study of the evolution of one of the subsystems of the Linux kernel: the SCSI drivers subsystem. We have found that cloning, which is usually considered to be an indicator of lazy development and poor process, is quite common and is even considered to be a useful practice. Second, we are developing a tool called Beagle to aid software maintainers in understanding how large systems have changed over time. Beagle integrates data from various static analysis and metrics tools and provides a query engine as well as navigable visualizations. Of particular note, Beagle aims to provide help in modelling long term evolution of systems that have undergone architectural and structural change.},
	keywords = {agile methods, beagle, cloning, evolution, fetchmail, gcc, growth, kernel, lehman{\textquoteright}s laws, lines of code, linux, linux kernel, loc, open source software, software architecture, software evolution, source code, structural change, supporting environments, vim},
	isbn = {1-58113-508-4},
	doi = {http://doi.acm.org/10.1145/602461.602482},
	url = {http://doi.acm.org/10.1145/602461.602482},
	attachments = {https://flosshub.org/sites/flosshub.org/files/tu2001.pdf},
	author = {Michael Godfrey and Tu, Qiang}
}
@conference {1142,
	title = {Software Engineering Research in the Bazaar},
	booktitle = {1st Workshop on Open Source Software Engineering at ICSE 2001},
	year = {2001},
	note = {"To gain a better understanding of a software system, we recover its software architecture from the system{\textquoteright}s source code.
We recovered the architecture of many open source systems such as the Linux kernel [3], the Mozilla browser [5], the Apache web server [7], and the VIM editor [14]. The recovered architecture is browse-able to permit developers to interact with it, [10] shows an example for the Linux kernel."},
	abstract = {During the last five years, our research group has studied the architecture and evolution of several large open source systems {\textemdash} including Linux, GCC, VIM, Mozilla, and Apache {\textemdash} and we have found that open source software systems often exhibit interesting differences when compared to similar commercially-developed systems. Our investigations of these systems have involved the creation of software architecture models, software architecture repair, the creation of a reference architecture for web servers, the study of evolution and growth of open source systems, and the modelling of architectural properties of systems that are apparent only at build time.},
	keywords = {apache, architecture, gcc, kernel, linux, linux kernel, mozilla, open source software, software architecture, Software Engineering Research, source code, vim},
	attachments = {https://flosshub.org/sites/flosshub.org/files/hassangodfreyholt.pdf},
	author = {Hassan, Ahmed E. and Godfrey, Michael W. and Holt, Richard C.}
}
