skip to main content
10.1145/2103799.2103809acmotherconferencesArticle/Chapter ViewAbstractPublication PagesapsysConference Proceedingsconference-collections
research-article

Static analysis of device drivers: we can do better!

Published:11 July 2011Publication History

ABSTRACT

We argue that the device driver architecture enforced by current operating systems complicates both manual and automatic reasoning about driver behaviour. In particular, it makes it hard and in some cases impossible to statically verify that the driver correctly interacts with the rest of the kernel. This limitation cannot be addressed solely via better verification tools. We maintain that qualitative improvement in the effectiveness of static driver verification must rely on an improved driver architecture, leading to drivers that are easier to write, understand, and verify.

To support our claims, we present a device driver architecture, called active drivers, that satisfies these requirements. We outline our methodology for specifying and verifying active driver protocols using existing model checking tools and describe initial experimental results.

References

  1. T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvey, B. Ondrusek, S. K. Rajamani, and A. Ustuner. Thorough static analysis of device drivers. In 1st EuroSys Conf., pages 73--85, Leuven, Belgium, Apr 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. F. Barnes and C. Ritson. Checking process-oriented operating system behaviour using CSP and refinement. Operat. Syst. Rev., 43(4):45--49, Oct 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. M. Clarke, D. Kroening, N. Sharygina, and K. Yorav. Predicate abstraction of ANSI-C programs using SAT. Formal Methods in System Design, 25(2--3):105--127, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Fähndrich, M. Aiken, C. Hawblitzel, O. Hodson, G. C. Hunt, J. R. Larus, and S. Levi. Language support for fast and reliable message-based communication in Singularity OS. In 1st EuroSys Conf., pages 177--190, Leuven, Belgium, Apr 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Fehnker, R. Huuck, P. Jayet, M. Lussenburg, and F. Rauch. Goanna --- A Static Model Checker. In 11th FMICS, pages 297--300, Bonn, Germany, Aug 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231--274, Jun 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. A. Henzinger, R. Jhala, R. Majumdar, G. C. Necula, G. Sutre, and W. Weimer. Temporal-safety proofs for systems code. In 14th Int. Conf. Comp. Aided Verification, pages 526--538, Copenhagen, Denmark, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. N. Palix, G. Thomas, S. Saha, C. Calvès, J. Lawall, and G. Muller. Faults in linux: ten years later. In 16th ASPLOS, pages 305--318, Newport Beach, CA, USA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Ryzhyk, P. Chubb, I. Kuz, and G. Heiser. Dingo: Taming device drivers. In 4th EuroSys Conf., Nuremberg, Germany, Apr 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. Ryzhyk, Y. Zhu, and G. Heiser. The case for active device drivers. In 1st APSys, pages 25--30, New Delhi, India, Aug 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Witkowski, N. Blanc, D. Kroening, and G. Weissenbacher. Model checking concurrent Linux device drivers. In 22nd ASE, pages 501--504, Atlanta, Georgia, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static analysis of device drivers: we can do better!

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Other conferences
              APSys '11: Proceedings of the Second Asia-Pacific Workshop on Systems
              July 2011
              97 pages
              ISBN:9781450311793
              DOI:10.1145/2103799

              Copyright © 2011 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 11 July 2011

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate149of386submissions,39%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader