Configurable Toolset for Static Verification of Operating Systems Kernel Modules
An operating system (OS) kernel is a critical software regarding to reliability and efficiency. Quality of a modern OSs kernel is high enough. Another situation is with kernel modules, e.g. device drivers, which due to various reasons have a significantly lower level of quality. One of the most crit...
Main Authors: | , , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
Ivannikov Institute for System Programming of the Russian Academy of Sciences
2018-10-01
|
Series: | Труды Института системного программирования РАН |
Subjects: | |
Online Access: | https://ispranproceedings.elpub.ru/jour/article/view/789 |
id |
doaj-c6ce8def99fd4d52824de9d3f77563c9 |
---|---|
record_format |
Article |
spelling |
doaj-c6ce8def99fd4d52824de9d3f77563c92020-11-25T01:25:47Zeng Ivannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-0126254210.15514/ISPRAS-2014-26(2)-1789Configurable Toolset for Static Verification of Operating Systems Kernel ModulesI. S. Zakharov0M. U. Mandrykin1V. S. Mutilin2E. M. Novikov3A. K. Petrenko4A. V. Khoroshilov5ИСП РАНИСП РАНИСП РАНИСП РАНИСП РАНИСП РАНAn operating system (OS) kernel is a critical software regarding to reliability and efficiency. Quality of a modern OSs kernel is high enough. Another situation is with kernel modules, e.g. device drivers, which 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 of correct usage of a kernel API. One can identify all such the violations in modules or prove their correctness with help of static verification tools which needs contract specifications describing formally obligations of a kernel and modules with respect to each other. The paper considers existing methods and toolsets for static verification of kernel modules of different OSs. It suggests a new method for static verification of Linux kernel modules that allows to configure checking at each of its stages. The paper shows how this method can be adapted for checking kernel components of other OSs. It describes an architecture of a configurable toolset for static verification of Linux kernel modules, which implements the proposed method, and demonstrates results of its practical application. Directions of further development are considered in conclusionhttps://ispranproceedings.elpub.ru/jour/article/view/789ядро операционной системымодуль ядракачество программной системыстатическая верификацияконтрактная спецификациямодель окруженияспецификация правила корректного использования программного интерфейса |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
I. S. Zakharov M. U. Mandrykin V. S. Mutilin E. M. Novikov A. K. Petrenko A. V. Khoroshilov |
spellingShingle |
I. S. Zakharov M. U. Mandrykin V. S. Mutilin E. M. Novikov A. K. Petrenko A. V. Khoroshilov Configurable Toolset for Static Verification of Operating Systems Kernel Modules Труды Института системного программирования РАН ядро операционной системы модуль ядра качество программной системы статическая верификация контрактная спецификация модель окружения спецификация правила корректного использования программного интерфейса |
author_facet |
I. S. Zakharov M. U. Mandrykin V. S. Mutilin E. M. Novikov A. K. Petrenko A. V. Khoroshilov |
author_sort |
I. S. Zakharov |
title |
Configurable Toolset for Static Verification of Operating Systems Kernel Modules |
title_short |
Configurable Toolset for Static Verification of Operating Systems Kernel Modules |
title_full |
Configurable Toolset for Static Verification of Operating Systems Kernel Modules |
title_fullStr |
Configurable Toolset for Static Verification of Operating Systems Kernel Modules |
title_full_unstemmed |
Configurable Toolset for Static Verification of Operating Systems Kernel Modules |
title_sort |
configurable toolset for static verification of operating systems kernel modules |
publisher |
Ivannikov Institute for System Programming of the Russian Academy of Sciences |
series |
Труды Института системного программирования РАН |
issn |
2079-8156 2220-6426 |
publishDate |
2018-10-01 |
description |
An operating system (OS) kernel is a critical software regarding to reliability and efficiency. Quality of a modern OSs kernel is high enough. Another situation is with kernel modules, e.g. device drivers, which 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 of correct usage of a kernel API. One can identify all such the violations in modules or prove their correctness with help of static verification tools which needs contract specifications describing formally obligations of a kernel and modules with respect to each other. The paper considers existing methods and toolsets for static verification of kernel modules of different OSs. It suggests a new method for static verification of Linux kernel modules that allows to configure checking at each of its stages. The paper shows how this method can be adapted for checking kernel components of other OSs. It describes an architecture of a configurable toolset for static verification of Linux kernel modules, which implements the proposed method, and demonstrates results of its practical application. Directions of further development are considered in conclusion |
topic |
ядро операционной системы модуль ядра качество программной системы статическая верификация контрактная спецификация модель окружения спецификация правила корректного использования программного интерфейса |
url |
https://ispranproceedings.elpub.ru/jour/article/view/789 |
work_keys_str_mv |
AT iszakharov configurabletoolsetforstaticverificationofoperatingsystemskernelmodules AT mumandrykin configurabletoolsetforstaticverificationofoperatingsystemskernelmodules AT vsmutilin configurabletoolsetforstaticverificationofoperatingsystemskernelmodules AT emnovikov configurabletoolsetforstaticverificationofoperatingsystemskernelmodules AT akpetrenko configurabletoolsetforstaticverificationofoperatingsystemskernelmodules AT avkhoroshilov configurabletoolsetforstaticverificationofoperatingsystemskernelmodules |
_version_ |
1725111842062204928 |