Device drivers represent an increasing proportion of operating system code -- more than 70% for Linux. Nevertheless, although device drivers are a critical part of an operating system, the process of their development remains rudimentary and requires a high level of expertise. This situation is demonstrated by a recent study that shows that the propensity of device drivers to contain errors is up to seven times higher than the rest of the kernel.
In this talk, I will present a new approach to ease the development of device drivers. This approach is based on a domain-specific language, named Devil, targeted towards specifying the programming interface of a device. The processing of a Devil specification begins by its analysis to detect inconsistencies. The code necessary to implement the communication between the device and the driver is then automatically generated. This code can be generated in one of two forms, depending on whether error checking or run-time performance is favored. I will assess the robustness improvement of Devil based drivers by applying a mutation analysis.
Key-words: Domain-Specific Languages, Device Drivers, Software Engineering
Host: Peter Lee
Appointments: Rosie Battenfelder
Principles of Programming Seminars