Analysis of typical faults in Linux operating system drivers

Fast evolution of the Linux operating system kernel and drivers, developed by a big programmers community distributed all over the world, led to nowadays there is not a common base of rules that completely describe a correct interaction between drivers and the kernel. This is an obstacle both for pr...

全面介紹

書目詳細資料
發表在:Труды Института системного программирования РАН
Main Authors: V. S. Mutilin, E. M. Novikov, A. V. Khoroshilov
格式: Article
語言:英语
出版: Russian Academy of Sciences, Ivannikov Institute for System Programming 2018-10-01
主題:
在線閱讀:https://ispranproceedings.elpub.ru/jour/article/view/1017
_version_ 1848651649195704320
author V. S. Mutilin
E. M. Novikov
A. V. Khoroshilov
author_facet V. S. Mutilin
E. M. Novikov
A. V. Khoroshilov
author_sort V. S. Mutilin
collection DOAJ
container_title Труды Института системного программирования РАН
description Fast evolution of the Linux operating system kernel and drivers, developed by a big programmers community distributed all over the world, led to nowadays there is not a common base of rules that completely describe a correct interaction between drivers and the kernel. This is an obstacle both for programmers that do not have expert knowledge in all peculiarities of the given interaction, and for development and application of tools that could find corresponding typical faults in the automatic way. The given paper presents a method to detect and to classify typical faults and corresponding rules. This method is based on analysis of changes, made to Linux operating system drivers.The paper gives results of the method application to stable versions of the Linux kernel from 2.6.35 till 3.0 starting from October 26, 2010 till October 26, 2011. We analyzed in total 1503 unique commits to drivers, marked 396 (about 27%) of them as fixes of typical faults and provided a classification and a distribution by classes for these typical faults. We distinguished 3 classes of typical faults: generic (faults all C programs are subjected to), specific (faults related to misuses of the Linux kernel API) and synchronization (faults related to parallel execution). We found that specific faults constitute about 50% of all typical faults. Then each typical fault was ascribed to one of 21 first-level subclasses: 12, 7 and 2 for specific, generic and synchronization classes correspondingly. We found that more than 50% of typical faults correspond to 5 first-level subclasses. More than 80% of typical faults correspond to 14 first-level subclasses. The most frequent faults were race conditions during parallel execution – they account for about 17% of all typical faults. Second and third places with about 9% were occupied by leaks of specific resources and null pointer deference.
format Article
id doaj-e21bab5630ce41d296c3e75593bb796c
institution Directory of Open Access Journals
issn 2079-8156
2220-6426
language English
publishDate 2018-10-01
publisher Russian Academy of Sciences, Ivannikov Institute for System Programming
record_format Article
spelling doaj-e21bab5630ce41d296c3e75593bb796c2025-11-03T00:18:23ZengRussian Academy of Sciences, Ivannikov Institute for System ProgrammingТруды Института системного программирования РАН2079-81562220-64262018-10-012201017Analysis of typical faults in Linux operating system driversV. S. Mutilin0E. M. Novikov1A. V. Khoroshilov2ИСП РАНИСП РАНИСП РАНFast evolution of the Linux operating system kernel and drivers, developed by a big programmers community distributed all over the world, led to nowadays there is not a common base of rules that completely describe a correct interaction between drivers and the kernel. This is an obstacle both for programmers that do not have expert knowledge in all peculiarities of the given interaction, and for development and application of tools that could find corresponding typical faults in the automatic way. The given paper presents a method to detect and to classify typical faults and corresponding rules. This method is based on analysis of changes, made to Linux operating system drivers.The paper gives results of the method application to stable versions of the Linux kernel from 2.6.35 till 3.0 starting from October 26, 2010 till October 26, 2011. We analyzed in total 1503 unique commits to drivers, marked 396 (about 27%) of them as fixes of typical faults and provided a classification and a distribution by classes for these typical faults. We distinguished 3 classes of typical faults: generic (faults all C programs are subjected to), specific (faults related to misuses of the Linux kernel API) and synchronization (faults related to parallel execution). We found that specific faults constitute about 50% of all typical faults. Then each typical fault was ascribed to one of 21 first-level subclasses: 12, 7 and 2 for specific, generic and synchronization classes correspondingly. We found that more than 50% of typical faults correspond to 5 first-level subclasses. More than 80% of typical faults correspond to 14 first-level subclasses. The most frequent faults were race conditions during parallel execution – they account for about 17% of all typical faults. Second and third places with about 9% were occupied by leaks of specific resources and null pointer deference.https://ispranproceedings.elpub.ru/jour/article/view/1017операционная системаядродрайверправило взаимодействияклассификация ошибок
spellingShingle V. S. Mutilin
E. M. Novikov
A. V. Khoroshilov
Analysis of typical faults in Linux operating system drivers
операционная система
ядро
драйвер
правило взаимодействия
классификация ошибок
title Analysis of typical faults in Linux operating system drivers
title_full Analysis of typical faults in Linux operating system drivers
title_fullStr Analysis of typical faults in Linux operating system drivers
title_full_unstemmed Analysis of typical faults in Linux operating system drivers
title_short Analysis of typical faults in Linux operating system drivers
title_sort analysis of typical faults in linux operating system drivers
topic операционная система
ядро
драйвер
правило взаимодействия
классификация ошибок
url https://ispranproceedings.elpub.ru/jour/article/view/1017
work_keys_str_mv AT vsmutilin analysisoftypicalfaultsinlinuxoperatingsystemdrivers
AT emnovikov analysisoftypicalfaultsinlinuxoperatingsystemdrivers
AT avkhoroshilov analysisoftypicalfaultsinlinuxoperatingsystemdrivers