Authors
Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Gernot Heiser
Publication date
2009/4/1
Book
Proceedings of the 4th ACM European conference on Computer systems
Pages
275-288
Description
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 …
Total citations
20082009201020112012201320142015201620172018201920202021202220232024111101412179181275315671
Scholar articles
L Ryzhyk, P Chubb, I Kuz, G Heiser - Proceedings of the 4th ACM European conference on …, 2009