On the evolution of Linux kernels: a complex network perspective
Version of Record online: 28 FEB 2012
Copyright © 2012 John Wiley & Sons, Ltd.
Journal of Software: Evolution and Process
Volume 25, Issue 5, pages 439–458, May 2013
How to Cite
Wang, L., Yu, P., Wang, Z., Yang, C. and Ye, Q. (2013), On the evolution of Linux kernels: a complex network perspective. J. Softw. Evol. and Proc., 25: 439–458. doi: 10.1002/smr.1550
- Issue online: 10 MAY 2013
- Version of Record online: 28 FEB 2012
- Manuscript Accepted: 22 DEC 2011
- Manuscript Revised: 16 DEC 2011
- Manuscript Received: 25 APR 2011
- software evolution;
- complex networks;
- Linux kernel
This paper presents a novel method to study the evolution of Linux kernel components using complex networks to understand how Linux kernel components evolve over time. After analyzing the node degree distribution, clustering coefficient, and average path length of the call graphs corresponding to the kernel components of 130 development versions and 94 stable versions (V1.0 to V2.4.35), we found that the call graphs of the file system, driver, kernel, memory management, and net components are scale-free, small-world complex networks. In addition, all of the five components exhibit very strong preferential attachment tendency. With such in-depth understanding of the features of the Linux kernel components, we propose a generic method that could be used to find major structural changes that occur during the evolution of software systems. Copyright © 2012 John Wiley & Sons, Ltd.