Is Kernel Code Different From Non-Kernel Code? A Case Study of BSD Family Operating Systems
Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan, and Ayushi, Rastogi

TL;DR
This study investigates the evolutionary characteristics of kernel and non-kernel code in BSD operating systems, revealing significant differences in commit size and review times at the subsystem level that are not captured by global metrics.
Contribution
It provides an empirical analysis of code churn and review dynamics at the subsystem level, highlighting important differences between kernel and non-kernel code in BSD OSes.
Findings
Kernel commits are larger than non-kernel commits.
Code review times are longer for kernel code.
Most commits contain either kernel or non-kernel code exclusively.
Abstract
Code churn and code velocity describe the evolution of a code base. Current research quantifies and studies code churn and velocity at a high level of abstraction, often at the overall project level or even at the level of an entire company. We argue that such an approach ignores noticeable differences among the subsystems of large projects. We conducted an exploratory study on four BSD family operating systems: DragonFlyBSD, FreeBSD, NetBSD, and OpenBSD. We mine 797,879 commits to characterize code churn in terms of the annual growth rate, commit types, change type ratio, and size taxonomy of commits for different subsystems (kernel, non-kernel, and mixed). We also investigate differences among various code review periods, i.e., time-to-first-response, time-to-accept, and time-to-merge, as indicators of code velocity. Our study provides empirical evidence that quantifiable evolutionary…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
