Docteur de l'Université de Rennes
1, 1988
Habilité à diriger des recherches, Université
de Rennes 1, 1997
Current research activities: Design of Operating Systems, using domain-specific languages
The development of operating systems is traditionally considered to be an
activity on the fringe of software development. In fact, the lack of
systematic methodologies for OS design often translates into closed systems
that are difficult to extend and modify. Too often generality is
sacrificed for performance. The widespread use of unsafe programming
languages, combined with extensive manual optimizations, compromises the
safety of OS software.
The goal of my research is to develop new methodologies based on the
use of aspect-oriented programming and domain-specific languages for
the structuring of an OS and an OS kernel. Aspect-oriented
programming is a technique for specifying behaviors (or strategies)
independently of the target system; a "weaver" automatically
integrates the code of such an aspect into the relevant system
components. This approach separates strategies, which are programmed
using aspects, from the underlying mechanisms, and thus simplifies
system evolution and extension.
A domain-specific language (DSL) is a programming language
dedicated to a particular application domain. A DSL is more
restricted than a general-purpose language, such as Java or C, but
encapsulates domain expertise that can allow verification of important
safety properties. In the context of systems programming, DSLs have
been developed for active networks (PLAN-P, and CPLAN-P), and
device drivers (Devil).
In the context of aspect-oriented programming, we have proposed to
use DSLs to program new aspects. This approach facilitates the safe
programming of new strategies. The combination of aspect-oriented
programming and domain-specific languages has been partially validated
in the context of Bossa,
a DSL for the design of kernel schedulers.
My latest work is a DSL-based approach to address the problem of
collateral evolutions in drivers, that are are evolutions in
device-specific code induced by a change in a support
library. Specifically, we are developing a development environment, Coccinelle, that
provides a transformation language for precisely expressing evolutions
and an interactive transformation tool for applying them. The key idea
of Coccinelle is to shift the burden of collateral evolution from the
driver maintainer to the OS developer who performs the original
library evolution, and who thus understands this evolution
best. Overall, Coccinelle will provide a means for formally
documenting collateral evolutions and for easing the application of
these evolutions to device-specific code.
Recent Professional Activities (2007-...)
- DSN 2012, June 2012, Boston, USA.
Poster Chair
- ICDCS 2012, June 2012, Macau, China.
Distributed OS and Middleware track co-chair
- PLOS 2011,
October 2011, Portugal.
PC member, Co-organizer
- SRDS 2011, October 2011, Madrid, Spain.
PC member
- SYSTOR 2011, May 2011, Haifa, Israel.
PC member
- HotDep 2010, October 2010, Vancouver, Canada.
PC member
- DSN-DCCS 2010, June 2010, Chicago, USA.
PC member
- 5th EuroSys
conference, April 2010, Paris.
PC chair
- 5th Workshop on Programming Languages and Operating Systems (PLOS 2009),
October 2009, Big Sky, Montana, USA.
PC chair
- 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2009), November 2009, Lyon.
PC member, multicore track
- 7th French Conference on Operating Systems (CFSE-7), September 2009, Toulouse.
PC member
- IEEE International Conference on Web Services (ICWS 2009), July 2009, Los Angeles, CA, USA.
PC member
- EuroSys 2009 PhD prize, April 2009, Nuremberg, Germany.
Jury member
- 8th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS '09), March 2009, Charlotteswille, Virginia.
PC member
- 11th IEEE High Assurance Systems Engineering Symposium, December 2008, Nanjing, China.
PC member
- IEEE International Conference on Web Services (ICWS 2008), September 2008, Beijing, China.
PC member
- 2008 DSN/Performance and Dependability Symposium (PDS), June 2008, Anchorage, Alaska.
PC member
- Seventh European Dependable Computing Conference (EDCC-7) , May 2008, Kaunas, Lithuania.
PC member
- 2nd EuroSys Doctoral Workshop, April 2008, Glasgow, Scotland.
PC member
- 7th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS '08), March 2008, Brussels, Belgium.
PC member
- EuroSys 2008 PhD prize, April 2008, Glasgow, Scotland.
Jury member
- 6th French Conference on Operating
Systems (CFSE-6), March 2008, Fribourg, Switzerland.
PC member
- Thirteenth International Conference on
Architectural Support for Programming Languages and Operating Systems
(ASPLOS '08), March 2008, Seattle, USA.
PC member
- 10th IEEE High Assurance Systems Engineering Symposium, November 2007, Dallas, Texas, USA.
PC member
- 4th Workshop on Programming Languages and Operating Systems
(PLOS 2007), October 2007, Stevenson, Washington, USA.
PC member
- IEEE International Conference on Web Services (ICWS 2007), July 2007, Salt Lake City, Utah, USA.
PC member
- DSN-DCCS 2007, June 2007, Edinburgh, UK.
PC member
- ICDCS 2007, June 2007, Toronto, CA.
PC member
- 10th IEEE International Symposium on
Object and component-oriented Real-time distributed (ISORC 2007), May 2007, Santorini Island, Greece.
PC member
- EuroSys 2007 PhD prize, March 2007, Lisbon, Portugal.
Jury member
- EuroSys 2007, March 2007, Lisbon, Portugal.
PC member
Last modified: February 2010