论文标题

内核代码与非内核代码不同吗? BSD家族操作系统的案例研究

Is Kernel Code Different From Non-Kernel Code? A Case Study of BSD Family Operating Systems

论文作者

Kudrjavets, Gunnar, Thomas, Jeff, Nagappan, Nachiappan, Rastogi, Ayushi

论文摘要

代码流失和代码速度描述了代码库的演变。当前的研究量化和研究代码流失和速度在高水平的抽象水平上,通常是在整个项目级别,甚至在整个公司的水平上。我们认为,这种方法忽略了大型项目子系统之间的明显差异。我们对四个BSD家族操作系统进行了探索性研究:Dragonflybsd,FreeBSD,NetBSD和OpenBSD。我们挖掘了797,879的承诺,以不同子系统(内核,非内分和混合)的年度增长率,提交类型,变化类型比和规模分类法来表征代码流失。我们还调查了各种代码审核期之间的差异,即,作为代码速度的指标,即第一响应,申请时间和合并时间的差异。我们的研究提供了经验证据,表明全球系统范围的可量化进化代码特征未能考虑到子系统层面上存在的显着个体差异。我们发现,尽管BSD子系统的代码基础增长率和提交类型的分配(中性,加性和减法)的分布存在相似之处,但(a)(a)大多数投入都包含内核或非内分代码,(b)内核consits consits的代码比非kernel-consits,以及(c)对于非非kernel code的代码更大。

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 code characteristics at a global system scope fail to take into account significant individual differences that exist at a subsystem level. We found that while there exist similarities in the code base growth rate and distribution of commit types (neutral, additive, and subtractive) across BSD subsystems, (a) most commits contain kernel or non-kernel code exclusively, (b) kernel commits are larger than non-kernel commits, and (c) code reviews for kernel code take longer than non-kernel code.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源