| Automatic data environment construction for static device drivers analysis |
| Full text |
Pdf
(172 KB)
|
| Source
|
International Conference on Software Engineering
archive
Proceedings of the 2006 conference on Specification and verification of component-based systems
table of contents
Portland, Oregon
POSTER SESSION: Poster abstract
table of contents
Pages: 89 - 92
Year of Publication: 2006
ISBN:1-59593-586-X
|
|
Authors
|
|
Hendrik Post
|
University of Tübingen / Symbolic Computation Group, Tübingen, Germany
|
|
Wolfgang Küchlin
|
University of Tübingen / Symbolic Computation Group, Tübingen, Germany
|
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 3, Downloads (12 Months): 38, Citation Count: 1
|
|
|
ABSTRACT
Linux contains thousands of device drivers that are developed independently by many developers. Though each individual driver source code is relatively small---≈10k lines of code---the whole operating system contains a few million lines of code. Therefore Linux device drivers offer a useful application area for modular analysis.Our finding is that despite the precise modeling of most features of the standard systems programming language C, model checking software verification tools for C fail to provide means for modular analysis of device drivers. We inspected CBMC [2], SLAM-SDV [3], MAGIC [1], BLAST [4] and others and found that a rich additional environment model for every device driver is needed. This model must provide information on out-of-scope initialized pointers and complex data structures. We present strategies to automatically create feasible, bounded data environments for Linux device drivers instead of creating them manually. Our solution differs from general interface generation mechanisms (e.g. CUTE[5]), because is it specialised on bounded model checking of Linux device drivers written in C. Our contribution is a preprocessing step that extends the usability of CBMC for modular Linux device driver analysis.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Sagar Chaki , Edmund Clarke , Alex Groce , Somesh Jha , Helmut Veith, Modular verification of software components in C, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon
|
| |
2
|
E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In K. Jensen and A. Podelski, editors, Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 2988 of LNCS, pages 168--176. Springer, 2004.
|
| |
3
|
V. Contributors. The SLAM Project. http://research.microsoft.com/slam/, 2006.
|
| |
4
|
T. Henzinger, R. Jhala, R. Majumdar, and G. SUTRE. Software verification with BLAST. In Proc. 10th Int. SPIN Workshop (SPIN'2003), Portland, OR, USA, May 2003, volume 2648 of LNCS, pages 235--239. Springer, 2003.
|
 |
5
|
|
| |
6
|
D. van Leeuwen, E. Anderson, and J. Axboe. A Linux Cdrom Standard, kernel 2.6.15 edition, March 1999. Found in Documentation/cdrom.
|
| |
7
|
T. Xie, D. Marinov, W. Schulte, and D. Notkin. Symstra: A framework for generating object-oriented unit tests using symbolic execution. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pages 365--381, Edinburgh, UK, April 2005.
|
 |
8
|
|
| |
9
|
J. Yang, P. Twohey, D. R. Engler, and M. Musuvathi. Using model checking to find serious file system errors. In Proc. of the 16th Int. Conf. on Computer Aided Verification (CAV), volume 3114 of LNCS, pages 273--288. Springer Berlin / Heidelberg, 2004.
|
CITED BY
|
|
Thomas Witkowski , Nicolas Blanc , Daniel Kroening , Georg Weissenbacher, Model checking concurrent linux device drivers, Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, November 05-09, 2007, Atlanta, Georgia, USA
|
|