Master 2012 2013
Stages de la spécialité SAR
FDD : Fast Driver Development using Safe and Automatic Template-Based Copy-Paste

Lieu :LIP6-Regal
Encadrant : Julia Lawall, Gilles Muller
Dates :01/04/2013 - 15/09/2013
Rémunération :436,05 euros/mois
Mots-clés : Parcours SAR autre qu’ATIAM, recherche, Parcours SAR, aussi pour STL



Computing today is quickly evolving, as it enters more and more aspects of our daily lives. We expect sophisticated, practical applications on computing platforms ranging from smartphones to servers, and from automobiles to airplanes. This diversity has led to an explosion in new architectures and new devices. There is, at the same time, a new emphasis on convergence, by which compatible versions of all kinds of applications should be available on all kinds of platforms. Because applications rely not only on raw computational power but also on the ability to interact with the world around them, access to devices, via device drivers, is a key element to realizing this goal. Indeed, for many applications, the availability and reliability of device drivers completely determines the usefulness of a computing platform, which in turn determines the viability of the application. Thus, being able to quickly develop robust, fully featured drivers for multiple platforms is a key challenge facing device manufacturers.

The goal of our work is to facilitate the porting of device drivers by automating the current practice of copy-paste development. In particular, we propose to automatically identify code common to the drivers for a class of related devices, and transform this common code into a \em template. This template will then be automatically instantiated with respect to device-specific information obtained by analysis of an existing driver for the same device, but for a different OS.

Description of the internship

The goal of this internship is to devise techniques for automatically identifying a set of drivers that support a common class of devices. This will involve adapting program analyses such as clone detection, which identifies common code fragments in a set of programs. A challenge in this context will be to take into account device-specific code as well as inessential variations that may be intermingled with the common code.


* L. Jiang, G. Misherghi, Z. Su, and S. Glondu. DECKARD : Scalable and accurate tree-based detection of code clones. In 29th International Conference on Software Engineering (ICSE), pages 96-105, Minneapolis, MN, USA, May 2007.

* A. Kadav and M. M. Swift. Understanding modern device drivers. In ASPLOS, pages 87-98, London, UK, Mar. 2012.

* F. Merillon, L. Reveillere, C. Consel, R. Marlet, and G. Muller. Devil : An IDL for hardware program-ming. In OSDI, pages 17-30, San Diego, CA, USA, Oct. 2000.

* Y. Padioleau, J. Lawall, R. R. Hansen, and G. Muller. Documenting and automating collateral evolutions in Linux device drivers. In EuroSys 2008, pages 247-260, Glasgow, Scotland, Mar. 2008.