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 PDF
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
Read
Internet Authorized users SPbPU
Read
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. Выводы
  • ГЛАВА 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

Detailed usage statistics