skip to main content
10.1145/1321631.1321719acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
poster

Model checking concurrent linux device drivers

Published:05 November 2007Publication History

ABSTRACT

The S<scp>lam</scp> toolkit demonstrates that predicate abstraction enables automated verification of real world Windows device drivers. Our predicate abstraction-based tool DDV<scp>erify</scp>enables the automated verification of Linux device drivers and provides an accurate model of the relevant parts of the kernel. We report on benchmarks based on Linux device drivers, confirming the results that S<scp>lam</scp> established for the Windows world. Furthermore, we take predicate abstraction one step further and introduce a technique to verify concurrent software with shared memory

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 European Systems Conference (EuroSys), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball and S. K. Rajamani. Bebop: A symbolic model checker for Boolean programs. In SPIN Workshop on Model Checking of Software, volume 1885 of LNCS. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball and S. K. Rajamani. The SLAM project: Debugging system software via static analysis. In Principles of Programming Languages (POPL). ACM Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Basler, D. Kroening, and G. Weissenbacher. SAT-based summarisation for Boolean programs. In SPIN Workshop on Model Checking of Software, volume 4595 of LNCS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Chaki, E. Clarke, A. Groce, S. Jha, and H. Veith. Modular verification of software components in C. IEEE Transactions on Software Engineering (TSE), 30(6), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 2988 of LNCS. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  7. E. Clarke, D. Kroening, N. Sharygina, and K. Yorav. SATABS: SAT-based predicate abstraction for ANSI-C. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 3440 of LNCS. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Computer Aided Verification (CAV), volume 1855 of LNCS. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. B. Cook, D. Kröning, and N. Sharygina. Symbolic model checking for asynchronous Boolean programs. In SPIN Workshop on Model Checking of Software, volume 3639 of LNCS. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. D. Ernst, J. H. Perkins, P. J. Guo, S. McCamant, C. Pacheco, M. S. Tschantz, and C. Xiao. The Daikon system for dynamic detection of likely invariants. Science of Computer Programming, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid. Software model checking: The VeriSoft approach. Formal Methods in System Design (FMSD), 26(2), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In Computer Aided Verification (CAV), volume 1254 of LNCS. Springer, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Gurfinkel, O. Wei, and M. Chechik. Yasm: A software model-checker for verification and refutation. In Computer Aided Verification (CAV), volume 4144 of LNCS. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. A. Henzinger, R. Jhala, R. Majumdar, and S. Qadeer. Thread-modular abstraction refinement. In Computer Aided Verification (CAV), volume 2725 of LNCS. Springer, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  15. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In Principles of Programming Languages (POPL). ACM Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. K. L. McMillan. The SMV system. Technical Report CMU-CS-92-131, Carnegie Mellon University, 1992.Google ScholarGoogle Scholar
  17. M. Musuvathi, D. Y. W. Park, A. Chou, D. R. Engler, and D. L. Dill. CMC: A pragmatic approach to model checking real code. SIGOPS Operating Systems Review, 36(SI), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Post and W. Küchlin. Automatic data environment construction for static device drivers analysis. In Specification and Verification of Component-based Systems (SAVCBS). ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Qadeer and D. Wu. KISS: Keep it simple and sequential. In Programming Language Design and Implementation (PLDI). ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: a dynamic data race detector for multi-threaded programs. SIGOPS Operating Systems Review, 31(5), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Schwoon. Model-Checking Pushdown Systems. PhD thesis, Technische Universität München, 2002.Google ScholarGoogle Scholar
  22. T. Witkowski. Formal verification of Linux device drivers. Master's thesis, Dresden University of Technology, 2007.Google ScholarGoogle Scholar
  23. Y. Xie and A. Aiken. Saturn: A SAT-based tool for bug detection. In Computer Aided Verification (CAV), volume 3576 of LNCS. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Yang, P. Twohey, D. Engler, and M. Musuvathi. Using model checking to find serious file system errors. Transanctions on Computer Systems (TOCS), 24(4), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Model checking concurrent linux device drivers

                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 Conferences
                  ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
                  November 2007
                  590 pages
                  ISBN:9781595938824
                  DOI:10.1145/1321631

                  Copyright © 2007 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: 5 November 2007

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • poster

                  Acceptance Rates

                  Overall Acceptance Rate82of337submissions,24%

                  Upcoming Conference

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader