Abstract

Linux driver verification is a large application area for software verification methods, in particular, for functional, safety, and security verification. Linux driver software is industrial production code — IT infrastructures rely on its stability, and thus, there are strong requirements for correctness and reliability. Linux driver software is complex, low-level systems code, and its characteristics make it necessary to bring to bear techniques from program analysis, SMT solvers, model checking, and other areas of software verification. These areas have recently made a significant progress in terms of precision and performance, and the complex task of verifying Linux driver software can be successful if the conceptual state-of-the-art becomes available in tool implementations. The paper is based on experience of the research groups led by authors in verification of industrial software. It is important to develop verification tools that are efficient and effective enough to successfully check software components that are as complex as device drivers. In this area verifiers/researchers and Linux society find mutual benefits in cooperation because: for the society it is important to get such crucial software verified; for the verification community it is important to get realistic verification tasks in order to tune and further develop the technology. The paper provides an overview of the state-of-the-art and pointed out research directions in which further progress is essential. In particularly the paper considers most promising verification techniques and tools, including predicate abstraction, counter example generation, explicit-state verification, termination and concurrency analysis. One of main topic of Linux driver verification research is combination of verification techniques.

Highlights

  • Linux driver software is industrial production code — IT infrastructures rely on its stability, and there are strong requirements for correctness and reliability

  • Linux driver software is complex, lowlevel systems code, and its characteristics make it necessary to bring to bear techniques from program analysis, SMT solvers, model checking, and other areas of software verification. These areas have recently made a significant progress in terms of precision and performance, and the complex task of verifying Linux driver software can be successful if the conceptual state-of-the-art becomes available in tool implementations

  • Model Checking Concurrent Linux Device Drivers // Proc

Read more

Summary

Введение

Ядро ОС Linux в настоящее время является одной из наиболее важных программных систем в нашем обществе. Но сообщество разработчиков постоянно ищет средства автоматической верификации наиболее критичных аспектов работы этой ОС, а сообщество исследователей в области верификации использует драйверы Linux как область для применения новых подходов анализа. Наиболее важные преимущества использования кода ядра Linux для постановки задач верификации следующие: Данное программное обеспечение является востребованным – многие люди заинтересованы в результатах его верификации. Хотя в области верификации программного обеспечения было сделано много новых достижений, требуются дополнительные усилия для того, чтобы использовать их на практике и применять их к сложному индустриальному коду, такому как драйверы устройств ОС Linux. Недавно проведенное соревнование по верификации программного обеспечения (SV-COMP’12)4 [3] показало, что категория драйверов устройств представляет сложность даже для самых современных инструментов анализа программ

Анализ указателей и динамические структуры данных
Символьная верификация
Комбинация приемов верификации
Анализ завершимости
Findings
Заключение
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call