Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006 2006
DOI: 10.1145/1217935.1217943
|View full text |Cite
|
Sign up to set email alerts
|

Thorough static analysis of device drivers

Abstract: Bugs in kernel-level device drivers cause 85% of the system crashes in the Windows XP operating system [44]. One of the sources of these errors is the complexity of the Windows driver API itself: programmers must master a complex set of rules about how to use the driver API in order to create drivers that are good clients of the kernel. We have built a static analysis engine that finds API usage errors in C programs. The Static Driver Verifier tool (SDV) uses this engine to find kernel API usage errors in a dr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

2
170
0

Year Published

2006
2006
2012
2012

Publication Types

Select...
5
2
2

Relationship

4
5

Authors

Journals

citations
Cited by 254 publications
(175 citation statements)
references
References 50 publications
2
170
0
Order By: Relevance
“…While not usually considered in the context of requirements or GSD, this sort of analysis has in fact been effective in conveying a very complex API to a number of vendors in different organizations. This, of course, requires a particular kind of analysis tool, i.e., one that needs no input and has an acceptably low rate of false positives [5].…”
Section: Research Summarymentioning
confidence: 99%
“…While not usually considered in the context of requirements or GSD, this sort of analysis has in fact been effective in conveying a very complex API to a number of vendors in different organizations. This, of course, requires a particular kind of analysis tool, i.e., one that needs no input and has an acceptably low rate of false positives [5].…”
Section: Research Summarymentioning
confidence: 99%
“…However, one challenge to this approach is to support the efficient abstraction/refinement, since most loops need to be fully unrolled in liveness property checking. There are two options for future work: (1) implement an aggressive abstraction/refinement algorithm for loop computation in tools such as SLAM [7] (may be insufficient when a ranking function is required); or (2) utilize termination checking tools such as Terminator [9] which analyzes loops by checking termination arguments (i.e., ranking functions).…”
Section: Discussionmentioning
confidence: 99%
“…CoVer not only verifies LTL properties on the BPDS models represented by Boolean programs [7], but also accepts assumptions in LTL formulae. These assumptions are very helpful in practice to constrain the verification and rule out false positives.…”
Section: Introductionmentioning
confidence: 99%
“…Ball, et al have shown Boolean programs to be effective abstractions of C programs in the SLAM project [11]. A Boolean program, conceptually a PDS, is essentially a C program in which the only data type available is Boolean.…”
Section: Introductionmentioning
confidence: 99%