Dissecting Code Features: An Evolutionary Analysis of Kernel Versus Nonkernel Code in Operating Systems

被引:0
|
作者
Zhao, Yangyang [1 ,2 ]
Li, Chenglin [1 ]
Chen, Zhifei [3 ]
Ding, Zuohua [1 ]
机构
[1] Zhejiang Sci Tech Univ, Sch Comp Sci & Technol, Hangzhou, Peoples R China
[2] Nanjing Univ, State Key Lab Novel Software Technol, Nanjing, Peoples R China
[3] Nanjing Univ Sci & Technol, Sch Comp Sci & Engn, Nanjing, Peoples R China
关键词
code features; kernel code; nonkernel code; software evolution; CONTEXT;
D O I
10.1002/smr.2752
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Understanding the evolution of software systems is crucial for advancing software engineering practices. Many studies have been devoted to exploring software evolution. However, they primarily treat software as an entire entity and overlook the inherent differences between subsystems, which may lead to biased conclusions. In this study, we attempt to explore variations between subsystems by investigating the code feature differences between kernel and nonkernel components from an evolutionary perspective. Based on three operating systems as case studies, we examine multiple dimensions, including the code churn characteristics and code inherent characteristics. The main findings are as follows: (1) The proportion of kernel code remains relatively small, and exhibits consistent stability across the majority of versions as systems evolve. (2) Kernel code exhibits higher stability in contrast to nonkernel code, characterized by a lower modification rate and finer modification granularity. The patterns of modification activities are similar in both kernel and nonkernel code, with a preference of changing code and a tendency to avoid the combination of adding and deleting code. (3) The cumulative code size and complexity of kernel files show an upward trajectory as the system evolves. (4) Kernel files exhibit a significantly higher code density and complexity than nonkernel files, featuring a greater number of code line, comments, and statements, along with a larger program length, vocabulary, and volume. Conversely, kernel functions prioritize modularity and maintainability, with a significantly smaller size and lower complexity than nonkernel functions. These insights contribute to a deeper understanding of the dynamics within operating system codebases and highlight the necessity of targeted maintenance strategies for different subsystems.
引用
收藏
页数:21
相关论文
共 50 条
  • [1] Is Kernel Code Different From Non-Kernel Code? A Case Study of BSD Family Operating Systems
    Kudrjavets, Gunnar
    Thomas, Jeff
    Nagappan, Nachiappan
    Rastogi, Ayushi
    2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022), 2022, : 211 - 222
  • [2] Code compaction of an operating system kernel
    He, Haifeng
    Trimble, John
    Perianayagam, Somu
    Debray, Saumya
    Andrews, Gregory
    CGO 2007: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2007, : 283 - +
  • [3] Integrated Timing Analysis of Application and Operating Systems Code
    Chong, Lee Kee
    Ballabriga, Clement
    Van-Thuan Pham
    Chattopadhyay, Sudipta
    Roychoudhury, Abhik
    IEEE 34TH REAL-TIME SYSTEMS SYMPOSIUM (RTSS 2013), 2013, : 128 - 139
  • [4] On the Challenge of Sound Code for Operating Systems
    Klimt, Jonathan
    Kroening, Martin
    Lankes, Stefan
    Monti, Antonello
    PROCEEDINGS OF THE 12TH WORKSHOP ON PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, PLOS 2023, 2023, : 83 - 90
  • [5] Teaching Operating Systems Using Code Review
    Daii, Christoffer
    Nieh, Jason
    PROCEEDINGS OF THE 45TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION (SIGCSE'14), 2014, : 549 - 554
  • [6] SOFTICE: Facilitating both adoption of Linux undergraduate operating systems laboratories and students' immersion in kernel code
    Gaspar, Alessio
    Stanaback, Joe
    Godwin, Clark
    EISTA '06: 4TH INT CONF ON EDUCATION AND INFORMATION SYSTEMS: TECHNOLOGIES AND APPLICAT/SOIC'06: 2ND INT CONF ON SOCIAL AND ORGANIZATIONAL INFORMATICS AND CYBERNETICS, VOL I, 2006, : 44 - +
  • [7] Support for Secure Code Execution in Server Operating Systems
    Bhuse, Vijay
    Hekhuis, Kyle
    PROCEEDINGS OF THE 13TH INTERNATIONAL CONFERENCE ON CYBER WARFARE AND SECURITY (ICCWS 2018), 2018, : 21 - 30
  • [8] Protecting Kernel Code and Data with a Virtualization-Aware Collaborative Operating System
    de Oliveira, Daniela Alvim Seabra
    Wu, S. Felix
    25TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, 2009, : 451 - 460
  • [9] Growth of self-canceling code in evolutionary systems
    Zhong, Xue
    Soule, Terence
    GECCO 2006: GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, VOL 1 AND 2, 2006, : 223 - +
  • [10] UNIX CLONE WITH SOURCE CODE FOR OPERATING SYSTEMS COURSES.
    Tanenbaum, Andrew S.
    Operating Systems Review (ACM), 1987, 21 (01): : 20 - 29