Premium
On the evolution of Linux kernels: a complex network perspective
Author(s) -
Wang Lei,
Yu Pengzhi,
Wang Zheng,
Yang Chen,
Ye Qiang
Publication year - 2013
Publication title -
journal of software: evolution and process
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.371
H-Index - 29
eISSN - 2047-7481
pISSN - 2047-7473
DOI - 10.1002/smr.1550
Subject(s) - linux kernel , computer science , kernel (algebra) , configfs , clustering coefficient , perspective (graphical) , system call , theoretical computer science , path (computing) , cluster analysis , operating system , parallel computing , distributed computing , mathematics , artificial intelligence , discrete mathematics
SUMMARY 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.