Gilles MullerInria Senior Research Scientist, Whisper team.
tel: +33 1 44 27 88 52
Boîte courrier 169
4 place Jussieu
75252 Paris Cedex 05
Office: Corridor 25-26, 3rd floor, door 318.
Former vice-chair of ACM/SIGOPS, July 2003 -June 2007.
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 domain-specific languages for the structuring of an OS and an OS kernel. 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), device drivers (Devil), and kernel schedulers (Bossa).
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.