HAL will be down for maintenance from Friday, June 10 at 4pm through Monday, June 13 at 9am. More information
Skip to Main content Skip to Navigation

Understanding Collateral Evolution in Linux Device Drivers

Yoann Padioleau 1 Julia Lawall 1 Gilles Muller 1
1 OBASCO - Objects, aspects and components
Mines Nantes - Mines Nantes, Inria Rennes – Bretagne Atlantique
Abstract : In a modern operating system (OS), device drivers can make up over 70% of the source code. Driver code is also heavily dependent on the rest of the OS, for functions and data structure defined in the kernel and driver support libraries. These two properties together pose a significant problem for OS evolution, as any changes in the interfaces exported by the kernel and driver support libraries can trigger a large number of adjustments in dependent drivers. These adjustments, which we refer to as collateral evolutions, may be complex, entailing substantial code reorganizations. Collateral evolution of device drivers is thus time consuming and error prone. In this paper, we present a qualitative and quantitative assessment of the collateral evolution problem in Linux device driver code. We provide a taxonomy of evolutions and collateral evolutions, and show that from one version of Linux to the next, collateral evolutions can account for up to 35% of the lines modified in such code. We then identify some of the challenges that must be met in the future to automate the collateral evolution process.
Document type :
Complete list of metadata

Contributor : Rapport de Recherche Inria Connect in order to contact the contributor
Submitted on : Friday, May 19, 2006 - 7:39:43 PM
Last modification on : Friday, February 4, 2022 - 3:19:45 AM
Long-term archiving on: : Sunday, April 4, 2010 - 8:44:50 PM


  • HAL Id : inria-00070251, version 1


Yoann Padioleau, Julia Lawall, Gilles Muller. Understanding Collateral Evolution in Linux Device Drivers. [Research Report] RR-5769, INRIA. 2005, pp.18. ⟨inria-00070251⟩



Record views


Files downloads