📄Работа №216695

Тема: Разработка микросервиса для автоматического обновления встроенной linux-системы

📝
Тип работы Бакалаврская работа
📚
Предмет Информатика и вычислительная техника
📄
Объем: 48 листов
📅
Год: 2025
👁️
Просмотров: 0
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Аннотация 2
Введение 4
1 Анализ требований 5
1.1 Анализ входных и выходных данных 6
2 Проектирование программного продукта 7
2.1 Проектирование UML 7
2.2 Выбор средств разработки 10
2.3 Описание алгоритма 14
3 Используемые средства разработки 18
3.1 Среда разработки Visual Studio Code 18
4 Разработка программного обеспечения 23
4.1 Разработка интерфейса пользователя 23
4.2 Описание основы приложения 29
4.3 Описание процесса скачивания обновления 32
4.4 Подготовка к обновлению 34
4.5 Установка обновления 39
4.6 Откат системы 41
4.7 Демонстрация сборки 42
4.8 Демонстрация запуска 43
Заключение 46
Список используемых источников 47

📖 Введение

Обновление - это важное составляющие каждой информационной системы, обеспечивающие внедрение новых функций и исправление возможных ошибок и уязвимостей. Особо важно автоматическое обновление для встраиваемых систем так как к ним не всегда есть доступ оператора и такое устройство должно уметь безопасно обновляться без прямого участия человека.
Предметом исследования является применение системы A/B обновлений во встраиваемой системе Linux на базе процессора ARM.
Цель выпускной квалификационной работы - создание микросервиса обновления из заранее предопределённого архива управляемый с помощью grpc и с возможностью скачивать обновления из облака. Проект направлен на создание удобного микросервиса обновлений, который станет частью большого программного комплекса.
Для достижения цели выпускной квалификационной необходимо написать программный модуль, реализующий следующие функции:
- Скачивание архива из облака;
- Распаковка архива с проверкой на повреждение;
- Установка обновления используя механизм A/B;
- Возврат к состоянию до обновления;
- Удобные grpc методы для управления;
- Консольный интерфейс для ручного управления.
Практическая значимость данной бакалаврской работы заключается в внедрении сервиса обновлений тем самым позволив обновлять систему просто и безопасно в автоматическом режиме.
Современные встраиваемые системы часто выполняют важные функции в составе более крупных комплексов. По мере развития программного обеспечения, появления новых функций и устранения уязвимостей и ошибок возникает необходимость обновления системы. Обновление позволяет:
- исправлять ошибки и повышать стабильность работы устройства;
- обеспечивать актуальность и безопасность программного обеспечения (в том числе закрывать известные уязвимости);
- добавлять новую функциональность без необходимости физического вмешательства в устройство;
- продлевать срок службы устройства за счёт адаптации к новым условиям эксплуатации.
Встраиваемые системы имеют ряд особенностей, таких как ограниченные ресурсы (память, вычислительная мощность), специфическая аппаратная конфигурация и высокие требования к надёжности. Стандартные решения часто не рассчитаны на эти особенности.
Необходимо разработать приложение подходящие под следующие требования:
- использование механизма A/B обновлений [1][2];
- обновление из файла архива;
- скачивание файла архива обновления из облака;
- возможность отката обновлений;
- простота, без избыточной функциональности;
- малый объём занимаемой памяти и быстродействие;
- надёжность;
- консольный режим, без GUI;
- управление через GRPC [8].

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В результате данной выпускной квалификационной работы был проведён анализ предметной области, входных данных, изучен механизм A/B обновлений и исходя из этих сведений разработано приложение.
Разработанное приложение имеет как консольный режим, так и grpc интерфейс, имеет возможность скачивать обновления с облака, а также производить установку и локального архива содержащий обновления.
Все поставленные задачи выполнены, а пути их решения описаны в данной работе, а именно:
- Проведён анализ требований;
- Изучены предоставленные входные данные и требуемые выходные;
- Выполнено проектирование с использованием uml, а также созданы
основные диаграммы;
- Выбраны средства разработки;
- Разработано приложение;
- Показана демонстрация запуска и работы.
Созданное приложение продемонстрировало стабильность и эффективность во время работы.
Не маловажным плюсом разработанного приложения является расширяемость благодаря простой, но удобной архитектуре.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. A/B - Бесшовные A/B-обновления в Android: как они устроены
[Электронный ресурс]. URL:
https ://habr.com/ru/companies/sberdevices/articles/521036/ (дата обращения: 22.05.2025).
2. A/B (Android Open Source Project): Жизненный цикл обновления A/B
[Электронный ресурс]. URL:
https://source.android.eom/devices/tech/ota/ab7hRru#life-of-an-a-b-update (дата обращения: 22.05.2025).
3. Buildroot - Wikipedia: Buildroot [Электронный ресурс]. URL: https://en.wikipedia.org/wiki/Buildroot (дата обращения: 22.05.2025).
4. CPIO - Архивация в Linux: как это работает [Электронный ресурс]. URL: https://habr.com/ru/articles/130092/ (дата обращения: 22.05.2025).
5. CRTP - Паттерн Curiously Recurring Template Pattern в C++ [Электронный ресурс]. URL: https://habr.com/ru/companies/otus/articles/803601/ (дата обращения: 22.05.2025).
6. curl - Command line tool and library for transferring data with URLs [Электронный ресурс]. URL: https://curl.se/ (дата обращения: 22.05.2025).
7. fmt - A modern formatting library [Электронный ресурс]. URL: https://github.com/fmtlib/fmt (дата обращения: 22.05.2025).
8. gRPC - A high performance, open source universal RPC framework [Электронный ресурс]. URL: https://grpc.io/ (дата обращения: 22.05.2025).
9. Gzip - Wikipedia: GNU zip [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Gzip (дата обращения: 22.05.2025).
10. libarchive - Multi-format archive and compression library [Электронный ресурс]. URL: https://www.libarchive.org/ (дата обращения: 22.05.2025).
11. nlohmann_json - JSON for Modern C++ [Электронный ресурс]. URL: https://github.com/nlohmann/json (дата обращения: 22.05.2025).
12. OpenSSL - Cryptography and SSL/TLS Toolkit [Электронный ресурс]. URL: https://www.openssl.org/ (дата обращения: 22.05.2025).
13. SHA-2 - Wikipedia: Secure Hash Algorithm 2 [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/SHA-2 (дата обращения: 22.05.2025).
14 U-Boot - Wikipedia: Das U-Boot [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Das_U-Boot (дата обращения: 22.05.2025).
15. UML - Wikipedia: Unified Modeling Language [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/UML (дата обращения: 22.05.2025)....20

🖼 Скриншоты

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ