Details
Title | Анализ неиспользуемых пакетов Linux: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» |
---|---|
Creators | Королев Михаил Петрович |
Scientific adviser | Дробинцев Дмитрий Федорович |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | linux ; неиспользуемые пакеты ; мониторинг системы ; bpftrace ; unused packages ; system monitoring |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.04 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-1531 |
Rights | Доступ по паролю из сети Интернет (чтение) |
Additionally | New arrival |
Record key | ru\spstu\vkr\35848 |
Record create date | 7/30/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
Данная работа посвящена разработке решения, позволяющего выявлять неиспользуемые пакеты на основе динамического мониторинга обращений к ядру на Linux-системе. Данное решение позволит повысить безопасность, производительность и эффективность системы за счет снижения числа ненужных компонентов. В рамках работы проведен анализ подходов для поиска неиспользуемых пакетов и сравнительный анализ существующих решений. Была предложена архитектура предлагаемого программного средства, реализованная в виде прототипа на языке Go. Архитектура основана на модульном подходе, что обеспечивает удобство масштабирования и сопровождения. Особое внимание уделялось минимизации нагрузки прототипа на систему. Для проведения тестирования был написан скрипт, симулирующий работу пакетов на системе. Результаты тестирования показали эффективность предложенного решения в задаче поиска неиспользуемых пакетов, а также низкое потребление ресурсов системы. Разработанный инструмент может использоваться как конечными пользователями, так и в составе крупных серверов.
The given work is devoted to the development of a solution that allows identifying unused packages based on dynamic monitoring of kernel accesses on a Linux system. This solution will improve the security, performance and efficiency of the system by reducing the number of unnecessary components. The work analyzes approaches for finding unused packages and comparative analysis of existing solutions. The architecture of the proposed software tool was proposed and implemented as a prototype in Go language. The architecture is based on a modular approach, which ensures easy scalability and maintenance. Special attention was paid to minimize the load of the prototype on the system. For testing, a script was written to simulate the work of packages on the system. The results of testing showed the effectiveness of the proposed solution in the task of searching for unused packages, as well as low consumption of system resources. The developed tool can be used both by end users and as part of large servers.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- СПИСОК ИЛЛЮСТРАЦИЙ
- ПЕРЕЧЕНЬ ТАБЛИЦ
- ВВЕДЕНИЕ
- ГЛАВА 1. ПРЕДМЕТНАЯ ОБЛАСТЬ
- 1.1. Понятие пакетов в Linux и методы анализа их необходимости
- 1.1.1. Система решения зависимостей APT
- 1.1.2. Система решения зависимостей DNF/Zypper
- 1.1.3. Избыточные компоненты и неиспользуемые пакеты
- 1.1.4. Выявление ненужных пакетов
- 1.1.5. Анализ вручную
- 1.1.6. Статический анализ
- 1.1.7. Динамический мониторинг активности процессов
- 1.1.8. Динамический мониторинг использования файлов
- 1.1.9. Выводы по способам анализа неиспользуемых пакетов
- 1.2. Обзор существующих решений
- 1.2.1. Deborphan
- 1.2.2. Apt autoremove
- 1.2.3. Rpmreaper
- 1.2.4. Nmon
- 1.2.5. Top
- 1.3. Сравнительный анализ
- 1.4. Выводы
- 1.1. Понятие пакетов в Linux и методы анализа их необходимости
- ГЛАВА 2. АРХИТЕКТУРА ПРЕДЛАГАЕМОГО ПРИЛОЖЕНИЯ
- 2.1. Преимущества модульной архитектуры
- 2.2. Общая структура приложения
- 2.3. Взаимодействие компонентов
- 2.4. Используемые технологии и инструменты
- 2.5. Профилирование и минимизация нагрузки
- 2.5.1. Использование bpftrace с ограничением по времени
- 2.5.2. Параллелизация задач в Go
- 2.5.3. Выборочные системные вызовы
- 2.5.4. Запись промежуточных результатов в файлы
- 2.5.5. Предварительная фильтрация данных
- 2.5.6. Анализ всех файлов в конце работы программы
- 2.5.7. Минимизация системных прав
- 2.6. Выводы
- ГЛАВА 3. РЕАЛИЗАЦИЯ ПРОТОТИПА
- 3.1. Модули сбора данных
- 3.2. Модуль последовательного запуска скриптов
- 3.3. Модуль анализа файлов
- 3.4. Модуль работы с конфигурационным файлом и флагами командной строки
- 3.5. Выводы
- ГЛАВА 4. РЕЗУЛЬТАТЫ
- 4.1. Постановка эксперимента
- 4.2. Сбор данных о нагрузке системы
- 4.3. Реализация bash-скрипта для имитации работы пользователя на системе
- 4.4. Конфигурация тестового запуска
- 4.5. Результаты нагрузочного тестирования
- 4.6. Сравнение результата с логом вызванных пакетов
- 4.7. Вывод
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Access count: 0
Last 30 days: 0