Развитие экосистемы кроссплатформенной разработки ПО для QP ОС (Михаил Орлов, OSDAY-2025)
Материал из 0x1.tv
(перенаправлено с «20250619I»)
Короткая ссылка: 20250619I
- Докладчик
- Михаил Орлов
- Создание экосистемы разработки для защищенной ОС QP ОС
- Портирование open-source ПО с соблюдением стандартов РБПО
- Обеспечение кроссплатформенной разработки и кросс-компиляции
- Соответствие нормативным требованиям информационной безопасности
Реализованные компоненты:
- Инфраструктура:
- Ядро: LLVM (25k+ правок), CMake (8k+ изменений), Ninja
- Драйвер компилятора: clang-qp для QP ОС
- Поддержка Python: интерпретатор + QPyPi (200+ пакетов)
- Система сборки Meson (для PostgreSQL 17)
- Адаптированный git (на libgit2)
- Кроссплатформенность:
- Поддержка архитектур: x86, x64, Arm32, Arm64
- Кросс-компиляция: Linux/Windows → QP ОС и QP ОС → Linux
- Toolchain-файлы для автоматизации сборки
- Виртуальная ФС для регистрозависимых систем
Дальнейшие шаги:
- Портирование менеджера зависимостей Conan (C/C++)
- Разработка интегрированной среды разработки (IDE) для QP ОС
- Доводка компонентов LLVM до полного соответствия стандартам РБПО
- Интеграция обновлений и новых функций в экосистему
Содержание
Видео
Thesis
Актуальность
Актуальность работы обусловлена необходимостью создания экосистемы разработки для отечественной ОС QP ОС, отвечающей требованиям:
- Портирование существующего open-source ПО
- Соответствие нормативно-правовым и нормативно-техническим требованиям РБПО (разработка безопасного ПО)
- Противодействие угрозам информационной безопасности
- Обеспечение соответствия национальным стандартам
Состав инфраструктуры разработки
Сформирована инфраструктура полного цикла разработки для QP ОС на базе:
- Ядро экосистемы: LLVM, CMake, Ninja
- Дополнительно: система сборки Meson (для проектов типа PostgreSQL)
- Система контроля версий: адаптированный git (на базе libgit2)
- Поддержка Python: портированный интерпретатор + локальный репозиторий QPyPi (200+ пакетов)
Ключевые возможности:
- Переносимость решений
- Сборка внутри QP ОС и кросскомпиляция с/на другие ОС
- Ускоренная адаптация ПО для защищенной среды
Инфраструктура LLVM
Портирование потребовало:
- 25 000+ изменений в исходном коде LLVM
- Разработка специализированного драйвера clang-qp
- Инструменты для кросскомпиляции: Linux/Windows → QP ОС и QP ОС → Linux
- Автоматизированные сценарии сборки пакетов
Средство автоматизации сборки CMake
Особенности портирования:
- 8 000+ изменений в исходном коде
- Поддержка платформы QP ОС
- Сценарии кросс-компиляции
- Частичное соответствие стандартам РБПО
Система сборки Ninja
Ключевые доработки:
- 300+ изменений в базовой версии
- Работоспособность в среде QP ОС
- Интеграция как основной системы сборки для CMake
Интерпретатор Python в QP ОС
Реализовано:
- Поддержка 200+ пакетов Python
- Интерактивная отладка в QP ОС
- Эмуляция среды разработки в Windows
- Интеграция Meson с поддержкой триплетов QP ОС
- Практическое применение: сборка PostgreSQL 17
Драйвер компилятора clang-qp
Функциональность:
- Связующее звено между LLVM и QP ОС
- Расширенный набор параметров для QP ОС
- Автоматическое определение окружения сборки
- Упрощенная кросскомпиляция исполняемых файлов
Кроссплатформенная разработка для QP ОС
Достигнуто:
- Поддержка триплетов для аппаратных платформ: x86, x64, Arm32, Arm64
- Разработка toolchain-файла для:
- Создания виртуальной ФС (регистронезависимые → регистрозависимые системы)
- Автоматической настройки параметров компиляции
- Подключения инструментов разработки под QP ОС
- Возможность портирования ПО на C/C++ со сторонних платформ
- Кросскомпиляция из QP ОС в Linux
Следующие шаги
- Портирование менеджера зависимостей Conan для C/C++
- Реализация интегрированной среды разработки (IDE) в QP ОС
- Доработка компонентов LLVM для полного соответствия стандартам РБПО
- Интеграция обновлений и новых функций в экосистему
Презентация
Примечания и ссылки
