Title
Configurable toolset for static verification of operating systems kernel modules
Abstract
An operating system (OS) kernel is a critical software regarding to reliability and efficiency. Quality of modern OS kernels is already high enough. However, this is not the case for kernel modules, like, for example, device drivers that, due to various reasons, have a significantly lower level of quality. One of the most critical and widespread bugs in kernel modules are violations of rules for correct usage of a kernel API. One can find all such violations in modules or can prove their correctness using static verification tools that need contract specifications describing obligations of a kernel and modules relative to each other. This paper considers present methods and toolsets for static verification of kernel modules for different OSs. A new method for static verification of Linux kernel modules is proposed. This method allows one to configure the verification process at all its stages. It is shown how it can be adapted for checking kernel components of other OSs. An architecture of a configurable toolset for static verification of Linux kernel modules that implements the proposed method is described, and results of its practical application are presented. Directions for further development of the proposed method are discussed in conclusion.
Year
DOI
Venue
2015
10.1134/S0361768815010065
Programming and Computer Software
Keywords
Field
DocType
environment model,software quality,operating system kernel,kernel module,specification of rule for correct usage of api,static verification,contract specification
Kernel (linear algebra),sysfs,Computer science,Correctness,Hybrid kernel,Kernel preemption,Software quality,Operating system,procfs,Embedded system,Linux kernel
Journal
Volume
Issue
ISSN
41
1
1608-3261
Citations 
PageRank 
References 
3
0.39
19
Authors
6