Title
Dingo: taming device drivers
Abstract
Device drivers are notorious for being a major source of failure in operating systems. In analysing a sample of real defects in Linux drivers, we found that a large proportion (39%) of bugs are due to two key shortcomings in the device-driver architecture enforced by current operating systems: poorly-defined communication protocols between drivers and the OS, which confuse developers and lead to protocol violations, and a multithreaded model of computation that leads to numerous race conditions and deadlocks. We claim that a better device driver architecture can help reduce the occurrence of these faults, and present our Dingo framework as constructive proof. Dingo provides a formal, state-machine based, language for describing driver protocols, which avoids confusion and ambiguity, and helps driver writers implement correct behaviour. It also enforces an event-driven model of computation, which eliminates most concurrency-related faults. Our implementation of the Dingo architecture in Linux offers these improvements, while introducing negligible performance overhead. It allows Dingo and native Linux drivers to coexist, providing a gradual migration path to more reliable device drivers.
Year
DOI
Venue
2009
10.1145/1519065.1519095
EuroSys
Keywords
Field
DocType
reliable device driver,better device driver architecture,device driver,driver writer,driver protocol,linux driver,dingo architecture,dingo framework,native linux driver,device-driver architecture,domain specific language,col,domain specific languages,operating system,state machine,communication protocol,model of computation,concurrent programming,race condition,reliability
Domain-specific language,Architecture,Computer science,Deadlock,Real-time computing,Model of computation,Dingo,Concurrent computing,Ambiguity,Operating system,Communications protocol
Conference
Citations 
PageRank 
References 
45
1.50
20
Authors
4
Name
Order
Citations
PageRank
Leonid Ryzhyk121216.05
Peter Chubb21073.81
Ihor Kuz330430.28
Gernot Heiser42525137.42