Компания Collabora представила Linux-дистрибутив Apertis 2024.3, изначально созданный для оснащения автомобильных устройств, но затем переориентированный для более широкого спектра электронных устройств, встраиваемой техники и промышленного оборудования. Из устройств, в которых применяется Apertis, отмечены игровая консоль Atari VCS и сканер для обнаружения объектов в стенах Bosch D-tect 200.
Базовые системные образы распространяются для архитектур x86_64, arm64 и armhf. Дистрибутив модульный, что позволяет производителям устройств самостоятельно формировать необходимую начинку системного окружения. Поддерживается как формирование сборок на базе традиционных deb-пакетов, так и монолитных атомарно обновляемых образов на основе OSTree.
В качестве основы для построения дистрибутива задействована пакетная база Debian GNU/Linux 12, но начинка сформирована с оглядкой на риски, которые могут возникнуть у производителей оборудования при использовании некоторых свободных лицензий, таких как GPLv3, запрещающих тивоизацию, т.е. привязку программного обеспечения к оборудованию, например, через дозволение загрузки только прошивок, заверенных цифровой подписью производителя.
При разработке и формировании начинки дистрибутива проект Apertis придерживается правил Debian, и включает в состав только приложения, поставляемые под открытыми лицензиями или как минимум допускающие свободное распространение. Компании, создающие свои продукты на базе Apertis, могут быть уверены в лицензионной чистоте производных работ – для каждой сборки формируется SBOM-отчёт (Software Bill of Materials) в котором указана информация о лицензиях всех использованных файлов с кодом, а также данные о версиях программ, что удобно при проверке уязвимых версий.
Важной особенностью Apertis является возможность сформировать сборку, не включающую код под лицензиями семейства GPLv3. Вместо использования устаревших версий утилит GNU, сформированных до перехода на лицензию GPLv3, в Apertis задействованы более современные альтернативы под пермиссивными лицензиями. Например, вместо пакетов GNU coreutils и findutils в Apertis предложены аналоги от проекта uutils, написанные на языке Rust и распространяемые под лицензией MIT, а вместо GnuPG поставляется Sequoia-PGP под лицензиями GPL-2+ и LGPL-2+. При этом, для тех кого не заботят юридические вопросы, связанные с GPLv3, оставлена возможность использования традиционных наборов утилит.
Все компоненты Apertis регулярно проходят расширенное автоматизированное и ручное тестирование на эталонных аппаратных платформах, таких как платы Raspberry Pi 4 автомобильные SoC R-car, а результаты такого тестирования публикуются в открытом доступе. Автоматизированное тестирование системных сборок на эталонном оборудовании организовано на базе системы LAVA (Linaro Automated Validation Architecture).
Предлагаемый в дистрибутиве пакет с ядром базируется на свежей LTS-ветке ядра Linux. Например, в выпуске Apertis 2024.3 задействовано ядро 6.6, а не ядро 6.1 из пакетов Debian 12. Время сопровождения каждого выпуска Apertis составляет 1 год и 9 месяцев, каждые три месяца формируется корректирующий релиз с исправлением ошибок.
Дистрибутив включает более 5000 пакетов. Все пакеты, образы, утилиты и настройки развиваются в публичном git-репозитории. Для совместной работы используется GitLab, а для тестирования с использованием непрерывной интеграции – GitLab CI. Для сборки бинарных пакетов из исходного кода задействован инструментарий OBS (Open Build Service). Собранные пакеты распространяются через APT-репозитории, управляемые при помощи инструментария aptly.
Из новых возможностей Apertis 2024, кроме перехода на пакетную базу Debian 12 и новое ядро Linux, упоминается:
- Поддержка управления контейнерами в формате OCI при помощи инструментария Podman.
- Возможность использования ONNX Runtime для ускорения задач машинного обучения.
- Поддержка развиваемых проектом OP-TEE пакетов optee-os (OP-TEE Trusted OS), optee-client (OP-TEE Client API) и optee-test (OP-TEE Test suite) для формирования защищённых окружений (TEE, Trusted Execution Environment), изолированных от основной системы.
- Начальная поддержка платы TI SK-AM62 и формирование для неё отдельных системных образов.
- По умолчанию при сборке пакетов включён вывод дополнительных предупреждений компилятора.
- Улучшена система сборки. Добавлена утилита для генерации отчёта о различиях в указанных системных образах. Улучшены SBOM-отчёты для анализа лицензий и оценки сборочных зависимостей.
- Расширены средства тестирования. Добавлена поддержка тестирования пакетов после каждого merge-запроса. Улучшены отчёты для контроля качества.