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
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- P. Godefroid. Software model checking: The VeriSoft approach. Formal Methods in System Design (FMSD), 26(2), 2005. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In Principles of Programming Languages (POPL). ACM Press, 2002. Google ScholarDigital Library
- K. L. McMillan. The SMV system. Technical Report CMU-CS-92-131, Carnegie Mellon University, 1992.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Qadeer and D. Wu. KISS: Keep it simple and sequential. In Programming Language Design and Implementation (PLDI). ACM Press, 2004. Google ScholarDigital Library
- 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 ScholarDigital Library
- S. Schwoon. Model-Checking Pushdown Systems. PhD thesis, Technische Universität München, 2002.Google Scholar
- T. Witkowski. Formal verification of Linux device drivers. Master's thesis, Dresden University of Technology, 2007.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Model checking concurrent linux device drivers
Recommendations
Combining Theorem Proving with Model Checking through Predicate Abstraction
This article presents a procedure for proving invariants of infinite-state reactive systems using a combination of two formal verification techniques: theorem proving and model checking. This method uses term rewriting on the definition of the target ...
Efficient Verification of Sequential and Concurrent C Programs
There has been considerable progress in the domain of software verification over the last few years. This advancement has been driven, to a large extent, by the emergence of powerful yet automated abstraction techniques such as predicate abstraction. ...
Infinite-state invariant checking with IC3 and predicate abstraction
We address the problem of verifying invariant properties on infinite-state systems. We present a novel approach, IC3ia, for generalizing the IC3 invariant checking algorithm from finite-state to infinite-state transition systems, expressed over some ...
Comments