patch (1) considered harmful

  • Authors:
  • Marc E. Fiuczynski;Robert Grimm;Yvonne Coady;David Walker

  • Affiliations:
  • Princeton University;New York University;University of Victoria;Princeton University

  • Venue:
  • HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
  • Year:
  • 2005

Quantified Score

Hi-index 0.02

Visualization

Abstract

Linux is increasingly used to power everything from embedded devices to supercomputers. Developers of such systems often start with a mainline kernel from kernel.org and then apply patches for their application domain. Many of these patches represent crosscutting concerns in that they do not fit within a single program module and are scattered throughout the kernel sources--easily affecting over a hundred files. It requires nontrivial effort to maintain such a crosscutting patch, even across minor kernel upgrades due to the variability of the kernel proper. Moreover, it is a significant challenge to ensure the kernel's correctness when integrating multiple crosscutting concerns. To make matters worse, developers use simple code merging tools that directly manipulate source file lines instead of relying on a lexical, grammatical, or semantic level of abstraction. The result is that patch maintenance is extremely time consuming and error prone. In this paper, we propose a new tool, called c4, designed to help manipulate patches at the level of their abstract syntax and semantics. We believe our approach will simplify the management of OS variations and thereby improve OS evolution.