Abstract

The paper investigates issues of Linux file system driver testing. Linux file system drivers are implemented as kernel modules, which works in the same address space as kernel core. For that reason, the driver should be very reliable. It should react adequately to incorrect file system images, to faults in operating system, etc. Also drivers should free all resources it requests as far as kernel have to work for long time without restart. Another important feature of file system drivers is that they are programs with multiple entry points, which may be executed simultaneously in respect with each other and with other kernel code. Most of existing test systems verify only driver's behavior in normal situations by calling system calls, which are eventually dispatched by the kernel into the driver's functions. Some of them also check driver in concurrent scenarios but only at very basic level. Some test systems also verify driver's behavior under faulty environment, when request for memory allocation or disk read/write may fail. But fault scenarios used in those systems are probabilistic, which leads to problems with tests' reproducibility and requires to repeat tests many times to achieve better coverage. There is one test system, which checks for memory leaks in the driver under test. The paper concludes by statement of requirements for more throughout file system driver testing. According to the requirements a test system have to cover the following aspects: Normal scenarios on system calls level. Parallel scenarios with additional checks for data races. Fault scenarios with insufficient memory and faulty block devices using such techniques as fault injection. Handling of incorrect file system images. Driver testing on system calls with invalid arguments. Check leaks of memory and other resources requested by driver under test.

Highlights

  • Операционные системы, основанные на ядре Linux, широко используются в мире

  • Linux file system drivers are implemented as kernel modules, which works in the same address space as kernel core

  • Drivers should free all resources it requests as far as kernel have to work for long time without restart

Read more

Summary

Введение

Операционные системы, основанные на ядре Linux, широко используются в мире. Они обеспечивают работу более 90% мощнейших суперкомпьютеров из международного рейтинга TOP500 и являются лидером рынка операционных систем для мобильных устройств в составе ОС Android. Как и во многих других операционных системах, понятие файловой системы в Linux является одним из ключевых. В Linux ответственность за работу файловых систем и операций с ними разделена между подсистемой виртуальной файловой системы (Virtual File System, VFS) ядра ОС, которое транслирует запросы пользователя в. Что в ОС Linux драйверы устройств, в том числе и драйверы файловых систем, реализованы в виде модулей ядра. Обычный же тест работает в пространстве пользователя и использует системные вызовы, которые в свою очередь вызывают те или иные функции драйвера файловой системы. На рис. показана стандартная схема тестирования драйверов файловых систем. Хотя за счет перебора параметров системных вызовов можно проверить большую часть функциональности драйвера, простого использования системных вызовов с различными параметрами недостаточно для обеспечения качественного тестирования драйвера файловой системы. Во втором разделе статьи мы рассмотрим другие особенности устройства драйверов файловых систем ОС Linux. Далее будут рассмотрены существующие системы тестирования, используемые для поверки корректности функционирования драйверов, и сформулированы требования к системе тестирования, способной вывести решение этой задачи на качественно новый уровень

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

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.