Understanding collateral evolution in Linux device drivers. Padioleau, Y., Lawall, J. L., & Muller, G. In Proc. of the First ACM European Conf. on Computer Systems, pages 59--71, 2006.
abstract   bibtex   
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 structures defined in the kernel and driver support libraries. These properties 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. As to our knowledge there exist no tools to help in this process, collateral evolution is thus time consuming and error prone.In this paper, we present a qualitative and quantitative assessment of collateral evolution in Linux device driver code. We provide a taxonomy of evolutions and collateral evolutions, and use an automated patch-analysis tool that we have developed to measure the number of evolutions and collateral evolutions that affect device drivers between Linux versions 2.2 and 2.6. In particular, we find that from one version of Linux to the next, collateral evolutions can account for up to 35% of the lines modified in such code.
@inproceedings{padioleau_understanding_2006,
	title = {Understanding collateral evolution in {Linux} device drivers},
	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 structures defined in the kernel and driver support libraries. These properties 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. As to our knowledge there exist no tools to help in this process, collateral evolution is thus time consuming and error prone.In this paper, we present a qualitative and quantitative assessment of collateral evolution in Linux device driver code. We provide a taxonomy of evolutions and collateral evolutions, and use an automated patch-analysis tool that we have developed to measure the number of evolutions and collateral evolutions that affect device drivers between Linux versions 2.2 and 2.6. In particular, we find that from one version of Linux to the next, collateral evolutions can account for up to 35\% of the lines modified in such code.},
	urldate = {2012-03-30TZ},
	booktitle = {Proc. of the {First} {ACM} {European} {Conf}. on {Computer} {Systems}},
	author = {Padioleau, Yoann and Lawall, Julia L. and Muller, Gilles},
	year = {2006},
	keywords = {device drivers, linux, software evolution},
	pages = {59--71}
}

Downloads: 0