Targeted user research: the key to successful technology transfer
The research work of the Coccinelle project has just been integrated in the kernel of the Linux operating system, a triumph for the team of Gilles Muller (Inria/LIP6 REGAL project-team) and his colleague Julia Lawall from the DIKU laboratory at the University of Copenhagen. It is the result of particularly well targeted research.
The Coccinelle project proposes to search for bugs using "semantic patches". This involves searching for sequences of programs with erroneous behaviour using an appropriate semantic patch to detect bugs. But a semantic patch does not merely raise the alarm. It can also propose a fix for the bug and thus enable a correction to be made on the source program. The direct benefit for the developer is the new ability to check himself that his developments are bug-free and, if necessary, perform a correction.
No fewer than 600 fixes originating from semantic patches are integrated in the Linux kernel development version. Furthermore, some twenty of these semantic patches will be available in the official version 2.6.36, which should be released in November.
Three questions for Gilles Muller,
Research director for the REGAL project
How did you manage to get Linux developers, who are not experts in your research field, to accept the fruits of your research?
The reason for the success of our project is the decision we took from the start to conduct targeted research resulting in a tool that could be used straightaway by people who are not specialists in our field. This was the main objective in our specifications when the project was launched. Our approach was to make ourselves available to them, by basing our language on concepts already known to Linux developers.
How long did it take you to complete your project?
It is a long-term project as we started back in 2004/2005. The first prototype was released in 2007 and we took 3 years to get into the Linux community and convince its developers. At the start of 2010, the Linux community decided to begin a real partnership with us, with the integration of the first semantic patches. It took all this time to put in place a common language, based on real attention to users' needs and usage habits.
What have you learnt from this experience of technology transfer in the field of free software?
Whether we are talking about free software or not, what I have learnt is that we have to target our research work and work closely with users so that they understand the benefits of our work and are quickly able to work independently with the tools we offer.
Linux is currently one of the most widely used operating systems, from embedded systems to desktop PCs, to supercomputers. Reliability is one of Linux developers' major concerns, as any failure in the operating system will result in the failure of applications. Linux's "open-source" development method boosts reliability: it allows any developer to inspect the code and report and even correct bugs. Linux is therefore considered to be one of the most reliable operating systems around at present.
However, operating systems are among the most complex pieces of software to develop due to the complexity of their interaction with hardware and the very large amount of code (more than 8 million lines for Linux). It is impossible to test all runtime configurations and some bugs slip through manual inspections unnoticed.