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...

Full description

Bibliographic Details
Main Authors: I. S. Zakharov, M. U. Mandrykin, V. S. Mutilin, E. M. Novikov, A. K. Petrenko, A. V. Khoroshilov
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