Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПОВМ_курсач_26 / 890541_Kalenchits_K_V_Poyasnitelnaya_zapiska.docx
Скачиваний:
2
Добавлен:
29.07.2022
Размер:
109.01 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет компьютерных систем и сетей

Кафедра электронных вычислительных машин

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

на тему

МОНИТОР ФАЙЛОВОЙ СИСТЕМЫ

БГУИР КР 1–40 02 01 313 ПЗ

Студент К.В. Каленчиц

Преподаватель Л.П. Поденок

Минск 2021

Содержание

Введение………………………………………………………………………………….………3

1. Анализ задания и описание методов………………………………………………….……..4

2. Проектирование программного обеспечения…………………………………………...…..6

2.1 Проектирование графического интерфейса……………………………………….…....6

2.2 Проектирование модуля сбора данных……………………………………………...….6

3. Реализация программного обеспечения…………………………………………………..…7

3.1 Реализация структурных данных……………………………………………………..…7

3.2 Реализация графического интерфейса………………………………………………..…7

3.3 Реализация модуля сбора данных……………………………………………………….9

4. Тестирование программного обеспечения……………………………………………..…..11

Заключение………………………………………………………………………………...……12

Список использованных источников……………………………………………………...…..13

Приложение А Листинг программы…………………………………………………………..14

Введение

В настоящее время файловая система является неотъемлемой частью любой операционной системы, которая реализует хранение и доступ к информации на каких-либо носителях. А что, если нам необходимо получить информацию о событиях в определенной директории? Пользователи UNIX-подобных ОС, чтобы достичь желаемого результата, привыкли организовывать совместную работу различных программ, рассчитанных на решение какой-то одной задачи. Эти команды, например, помещают в файл Bash-скрипта, а потом, по своей инициативе, вызывают этот скрипт из командной строки. А что если нужно, чтобы система сама реагировала бы на какие-то изменения, действуя без вмешательства пользователя? В современных ядрах (начиная с 2.6.13) есть механизм уведомлений о событиях файловой системы, представленный интерфейсом inotify. Соответствующие вызовы можно использовать программно, применяя заголовочный файл sys/inotify.h. Существует и набор инструментов командной строки, который можно установить, обычно представленный пакетом inotify-tools.

Целью выполнения данной курсовой работы как раз и является создание подобной утилиты для операционной системы Linux. Для достижения поставленной цели в рамках курсовой работы потребуется:

  • изучить и освоить методы и способы программного получения информации о событиях, связанных с файлами и каталогами файловой системы;

  • реализовать приложение с графическим интерфейсом, которое бы отображало эти события в удобном для пользователя формате.

Разработка программной утилиты для мониторинга файловой системы будет осуществляется на языке программирования C++ в интегрированной среде разработки QT Creator.

1. Анализ задания и описание методов решения

Согласно заданию на курсовую работу необходимо разработать программную утилиту для монитора файловой системы. Данная утилита должна обладать следующими функциональными возможностями:

  • производить поиск информации о событиях в директории;

  • отображать найденную информацию о событиях, их нумерацию (id) и имя файла, в котором были изменения;

  • выбирать необходимую директорию.

Для выполнения данных задач необходимо:

  • определить структуру данных, описывающую изменения в поддиректории, и способы ее отображения в графическом интерфейсе;

  • определить способы получения информации о событиях связанных с файлами, в выбранной директории;

  • реализовать соответствующий графический интерфейс, отображающий полученную информацию.

Для решения данных задач был выбран язык программирования С++.

C++ — компилируемый, статически типизированный язык программирования общего назначения, на котором можно создавать программы любого уровня сложности. Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).

Для мониторинга событий файловой системы в Linux, таких как доступ к файлам, их модификация, создание/удаление, будем использовать механизм под названием inotify. Он позволяет быстро и эффективно, в реальном времени мониторить указанные директории или отдельные файлы на заданные события и при их наступлении передавать информацию отслеживающим её приложениям..

2 Проектирование программного обеспечения

В рамках данного раздела будут рассмотрены вопросы, касающиеся проектирования структуры Linux-утилиты для мониторинга файловой системы. В предыдущем разделе было определено, что информация об устройствах компьютера представляется в табличной форме: нумерация событий (id), имя файла само событие. Чтение информации осуществляется с использованием системной библиотеки – Inotify.

С целью улучшения процесса разработки было решено разделить ее на два модуля: модуль графического интерфейса и модуль получения данных. Далее каждый из этих модулей будет рассмотрен отдельно.

2.1 Проектирование графического интерфейса

Программа создана с использованием обычного оконного интерфейса для ОС Linux. Основным предназначением (функцией) данного модуля является отображение информации о файлах и событиях, происходящих с ними, в удобной для пользователя форме. Отображаемая информация будет получаться от модуля сбора данных.

Графический интерфейс имеет смысл реализовать в виде приложения, содержащего одно окно, в котором будут располагаться:

  • Нумерация событий;

  • Имя файла;

  • Событие, связанное с файлом

Дополнительно будет реализовано 2 поля, первое – «Выбрать директорию», с помощью него можно будет выбрать/изменить директорию для наблюдения, второе поле будет указывать путь к выбранной директории.

Соседние файлы в папке СПОВМ_курсач_26