< Back to previous page

Publication

Sound formal verification of Linux's USB BP keyboard driver

Book Contribution - Book Chapter Conference Contribution

Case studies for formal software verification can be divided into two categories: while (i) unsound approaches may miss errors or report false-positive alarms due to coarse abstractions, (ii) sound approaches typically do not handle certain programming constructs like concurrency and/or suffer from scalability issues. This paper presents a case study on successfully verifying the Linux USB BP keyboard driver. Our verification approach is (a) sound, (b) takes care of dynamic memory allocation, complex API rules and concurrency and (c) is applied on a real kernel driver which was not written with verification in mind. We employ VeriFast, a software verifier based on separation logic. Besides showing that it is possible to verify this device driver, we identify the parts where the verification went smoothly and the parts where the verification approach requires further research to be carried out.
Book: NASA Formal Methods
Pages: 210 - 215
ISBN:9783642288906
Publication year:2012
Accessibility:Open