当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Study of Feature Scattering in the Linux Kernel
IEEE Transactions on Software Engineering ( IF 7.4 ) Pub Date : 2021-01-01 , DOI: 10.1109/tse.2018.2884911
Leonardo Passos , Rodrigo Queiroz , Mukelabai Mukelabai , Thorsten Berger , Sven Apel , Krzysztof Czarnecki , Jesus Padilla

Feature code is often scattered across a software system. Scattering is not necessarily bad if used with care, as witnessed by systems with highly scattered features that evolved successfully. Feature scattering, often realized with a pre-processor, circumvents limitations of programming languages and software architectures. Unfortunately, little is known about the principles governing scattering in large and long-living software systems. We present a longitudinal study of feature scattering in the Linux kernel, complemented by a survey with 74, and interviews with nine Linux kernel developers. We analyzed almost eight years of the kernel's history, focusing on its largest subsystem: device drivers. We learned that the ratio of scattered features remained nearly constant and that most features were introduced without scattering. Yet, scattering easily crosses subsystem boundaries, and highly scattered outliers exist. Scattering often addresses a performance-maintenance tradeoff (alleviating complicated APIs), hardware design limitations, and avoids code duplication. While developers do not consciously enforce scattering limits, they actually improve the system design and refactor code, thereby mitigating pre-processor idiosyncrasies or reducing its use.

中文翻译:

Linux内核中的特征散射研究

功能代码通常分散在整个软件系统中。如果小心使用,散射不一定是坏的,正如具有高度分散特征的系统所证明的那样,这些系统已经成功进化。特征分散,通常用预处理器实现,规避了编程语言和软件架构的限制。不幸的是,关于在大型和长寿命软件系统中控制散射的原则知之甚少。我们对 Linux 内核中的特征分散进行了纵向研究,并辅以对 74 人的调查以及对九名 Linux 内核开发人员的采访。我们分析了内核近八年的历史,重点关注其最大的子系统:设备驱动程序。我们了解到分散特征的比率几乎保持不变,并且大多数特征是在没有散射的情况下引入的。然而,散射很容易跨越子系统边界,并且存在高度分散的异常值。分散通常解决性能维护权衡(减轻复杂的 API)、硬件设计限制并避免代码重复。虽然开发人员不会有意识地强制执行散射限制,但他们实际上会改进系统设计和重构代码,从而减轻预处理器的特性或减少其使用。
更新日期:2021-01-01
down
wechat
bug