Towards automatic software model checking of thousands of Linux modules-a case study with Avinux

Hendrik Post, Carsten Sinz, Wolfgang Küchlin
2009 Software testing, verification & reliability  
Modular software model checking of large real-world systems is known to require extensive manual effort in environment modelling and preparing source code for model checking. Avinux is a tool chain that facilitates the automatic analysis of Linux and especially of Linux device drivers. The tool chain is implemented as a plugin for the Eclipse IDE, using the source code bounded model checker CBMC as its backend. Avinux supports a verification process for Linux that is built upon specification
more » ... otations with SLICx (an extension of the SLIC language), automatic data environment creation, source code transformation and simplification, and the invocation of the verification backend. In this paper technical details of the verification process are presented: Using Avinux on thousands of drivers from various Linux versions lead to the discovery of six new errors. In these experiments, Avinux also reduced the immense overhead of manual code preprocessing that other projects incurred.
doi:10.1002/stvr.399 fatcat:3l3ilnqpmnfajlqqgjr7zmat6y