Trustworthy Systems

Automatic device driver synthesis with Termite

Authors

Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur and Gernot Heiser

NICTA

UNSW

Open Kernel Labs

Abstract

Faulty device drivers cause significant damage through downtime and data loss. The problem can be mitigated by an improved driver development process that guarantees correctness by construction. We achieve this by synthesizing drivers automatically from formal specifications of device interfaces, thus reducing the impact of human error on driver reliability and also cutting down on development costs.

We present a concrete driver synthesis approach and tool called Termite. We discuss the methodology, the technical and practical limitations of driver synthesis, and provide an evaluation of non-trivial drivers for Linux, generated using our tool. We show that the performance of the generated drivers is on a par with the equivalent manually developed drivers. Furthermore, we demonstrate that device specifications can be reused across different operating systems by generating a driver for FreeBSD from the same specification used for Linux.

BibTeX Entry

  @inproceedings{Ryzhyk_CKSH_09,
    address          = {Big Sky, MT, US},
    author           = {Ryzhyk, Leonid and Chubb, Peter and Kuz, Ihor and Le Sueur, Etienne and Heiser, Gernot},
    booktitle        = {ACM Symposium on Operating Systems Principles},
    keywords         = {device drivers, software synthsis, reliability},
    month            = oct,
    pages            = {73--86},
    paperurl         = {https://trustworthy.systems/publications/nicta_full_text/1847.pdf},
    title            = {Automatic Device Driver Synthesis with {Termite}},
    year             = {2009}
  }

Download