View Related Documents

Abstract

This article presents a case study on retrospective verification of the Linux Virtual File System (VFS), which is aimed at checking violations of API usage rules and memory properties. Since VFS maintains dynamic data structures and is written in a mixture of C and inlined assembly, modern software model checkers cannot be applied. Our case study centres around our novel automated software verification tool, the SOCA Verifier, which symbolically executes and analyses compiled code. We describe how this verifier deals with complex features such as memory access, pointer aliasing and computed jumps in the VFS implementation, while reducing manual modelling to a minimum. Our results show that the SOCA Verifier is capable of analysing the complex Linux VFS implementation reliably and efficiently, thereby going beyond traditional testing tools and into niches that current software model checkers do not reach. This testifies to the SOCA Verifier’s suitability as an effective and efficient bug-finding tool during the development of operating system components.

Keywords  Model checking – Symbolic execution – Case study – Linuxvirtual file system – Object code analysis

by Jim Woodcock
An extended abstract of this article has appeared in the proceedings of SBMF 2009: “Formal Methods: Foundations and Applications”, volume 5902 of Lecture Notes in Computer Science, pages 306–320, Springer, 2009.

Fulltext Preview

Image of the first page of the fulltext document