Abstract

Methods and tools for automated static verification aim at detecting all violations of checked requirements in target programs under certain assumptions even without complete models and formal specifications. The given feature form a basis of the suggested method for incremental development of environment model and requirement specifications for subsystems of operating system monolithic kernels. This method was implemented on top of static verification framework Klever. It was evaluated by checking the Linux kernel TTY subsystem. During this study some Klever components were improved. Besides, we fixed some existing and developed new environment model and requirement specifications. Almost all made changes also helps at static verification of loadable modules of the Linux kernel. Developers of automated static verification tool CPAchecker fixed several issues that we revealed and reported during the research. Overall developed specifications allowed to increase function coverage of the TTY subsystem from 5% to 83%. Moreover, we revealed 7 bugs in loadable modules verified together with the TTY subsystem.

Highlights

  • The given feature form a basis of the suggested method for incremental development of environment model and requirement specifications for subsystems of operating system monolithic kernels. This method was implemented on top of static verification framework Klever

  • It was evaluated by checking the Linux kernel TTY subsystem

  • Almost all made changes helps at static verification of loadable modules of the Linux kernel

Read more

Summary

Покрытие кода целевых подсистем монолитного ядра ОС

Что инструменты автоматической статической верификации могут пропустить ошибки, если не проверяются какие-то пути выполнения, которые возможны при работе в реальном окружении. Анализировать подсистему совместно с теми расширениями монолитного ядра ОС, которые ее используют и для которых разрабатывать модели окружения может быть проще по тем или иным причинам. Если покрыть дополнительный код можно за счет совместного анализа подсистемы с некоторым расширением монолитного ядра ОС, то предлагается воспользоваться данной возможностью в первую очередь, а не разрабатывать дополнительную спецификацию модели окружения. Что при таком подходе к покрытию кода целевых подсистем монолитного ядра ОС могут покрываться не все возможные пути выполнения, которые возможны при работе в реальном окружении. Некоторый программный интерфейс подсистемы может предоставлять возможности, которые не используются ни одним из выбранных расширений монолитного ядра ОС, а имеющиеся спецификации моделей окружения могут не описывать работу с данным программным интерфейсом или делать это не достаточно. При необходимости и возможности спецификации можно доработать, благодаря чему покрыть дополнительный код

Уточнение спецификаций моделей окружения
Разработка и уточнение спецификаций требований
Реализация предложенного метода
Покрытие функций TTY-подсистемы при ее проверке с одним загружаемым модулем
Проверка выполнения требований для TTY-подсистемы
Заключение
Благодарность
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