Xenolith Fleet OS — минимальный Linux-образ и панель управления парком киосков и HMI-панелей: нативный Vulkan UI напрямую в дисплей, OTA приложения и системы, $0 per-device роялти на движок.
60fps UI + ~150 МБ образ + fleet/OTA — один продукт вместо Qt + Yocto + Mender.
OEM-производители собирают стек из четырёх продуктов: GUI-фреймворк, Yocto-образ, OTA-вендор, MDM — четыре счёта, месяцы NRE и per-device роялти, убивающие экономику средних тиражей.
Коммерческие GUI-стеки и платформенные SDK недоступны или под санкциями для ряда производителей. Locked-down устройства не могут выполнить обязательства LGPL по relink — а критическая инфраструктура требует доверенных стеков.
Chromium-киоски жгут >512 МБ в простое и тормозят на Pi-классе. Android требует гигабайты и 30–60 с загрузки. Композиторные стеки теряют 30–40% кадрового времени до первого пикселя вашего UI.
Единый путь от десктопного Xenolith-приложения до парка иммутабельных устройств — без отдельного embedded-тулчейна и без контейнерного рантайма на устройстве.
Соберите и отладьте то же приложение на Windows, Linux или macOS с Xenolith SDK.
Соберите загружаемый образ — rootfs + ядро + ваш бинарник — без Yocto-консалтинга.
Один нативный aarch64-бинарник выводит напрямую в DRM/KMS через Vulkan. Без композитора, без контейнера.
Обновляйте приложение без перезагрузки; обновляйте образ ОС с A/B-слотами и автоматическим откатом.
Десктоп = устройство. Linux aarch64-бинарник — то же приложение, что вы уже запускали на десктопе, не порт.
Иммутабельный Linux с контролем целостности, прямым выводом на дисплей и footprint'ом, помещающимся в дешёвую флеш-память.
Vulkan выводит через VK_KHR_display — без X11, Wayland или композитора между графом сцены и панелью.
squashfs-корень с dm-verity. Системный раздел read-only; данные приложения и флота живут на отдельном томе.
Аппаратный Vulkan (V3DV на Pi) для 60 fps, или lavapipe для QEMU и плат без зрелых драйверов — один ICD на вариант образа.
Payload — Xenolith ELF прямо в KMS, не контейнер, snap или браузер. Подмена приложения — копирование файла.
Агент на устройстве и консоль оператора для полного жизненного цикла: provision, heartbeat, OTA, консоль, вывод из эксплуатации.
Отправьте новый ELF в data-слот и перезапустите процесс киоска — без перезагрузки, без пересборки образа.
Запишите squashfs в неактивный A/B-слот, перезагрузите, проверьте и откатите автоматически при неудачной загрузке.
Устройства регулярно отправляют статус и метрики, чтобы консоль показывала, что онлайн, зависло или отказало.
Веб-панель со списком устройств, действиями деплоя и удалённым SSH-терминалом для диагностики.
aarch64 Linux-бинарник — то же Xenolith-приложение, что вы отлаживаете на десктопе. Без разрыва эмулятора, без device-only переписывания.
После прошивки ОС замените бинарник киоска по SSH или FAT за секунды. Полная пересборка образа — только при изменении базы.
xl-builder / flashing SDK превращает rootfs + ядро + приложение в загрузочный SD/USB-образ — минуты, а не 3–6 месяцев Yocto-проекта.
AGENTS и SKILLS поставляются со стеком — кодинг-агенты из коробки знают систему сборки, деплой и fleet-воркфлоу.
Опциональный удалённый рендеринг через QUIC: терминал рисует пиксели; логика и данные остаются на сервере — для платёжных киосков, банкоматов и медицинских терминалов.
Экспериментальный — сериализация сцены и транспорт существуют; пока не основной путь для fleet.
Тот же паттерн golden-image, что и у зрелых fleet-платформ — отличие в модели загрузки и интегрированном GUI-стеке.
| Xenolith Fleet OS | Qt / Boot to Qt | Chromium-киоск | Android + MDM | balena / Torizon | |
|---|---|---|---|---|---|
| Модель UI | Нативный Vulkan → KMS | Qt + композитор | Браузер | Android UI | Контейнерное приложение |
| Размер образа | ~120–150 МБ | ГБ-класс Yocto | ГБ-класс | 2–4 ГБ+ | Слои контейнеров |
| Роялти на движок | $0 | Per-device / seat | $0 | $0 | Н/Д |
| Fleet / OTA | Встроено | Добавить Mender и т.д. | Самоделка / MDM | MDM-подписка | Сильная |
| Десктоп = устройство | Да | Нет | Нет | Нет | Частично |
Киоски, кассы самообслуживания и муниципальные терминалы, которым нужен отзывчивый UI на бюджетных ARM-платах.
Панели оператора, где GPU UI и доверенный софтверный стек важнее десктопной ОС.
Надёжное воспроизведение без утечек памяти Chromium и ночного cron-рестарта.
Outdoor- и полу-outdoor-устройства с жёстким BOM, ограничением флеш-памяти и бюджетом загрузки.
Платёжные и медицинские сценарии, где тонкий клиент гарантирует, что данные не хранятся на устройстве.
Производители, которым нужен суверенный тулчейн — собственные LLVM-тулчейны, ГОСТ-крипто в стеке, дорожная карта к реестру ПО.
Мы предпочитаем показать измеренные результаты, а не перепродать. Вот что работает сегодня и что ещё продуктизируется.
Загрузочные образы с V3DV (60 fps) и lavapipe-вариантами; иммутабельный корень и слот приложения проверены на железе.
Обновление бинарника без перепрошивки ОС — через fleet-путь или прямой SSH/FAT-swap для разработчиков.
Реестр устройств, heartbeat, UpdateApp/UpdateSystem, веб-консоль и QEMU multi-device демо — закалка к production PKI.
Mutual-TLS device-портал, canary-раскатки и цели boot-to-interactive (включая 1–2 с instant-on).
Для OEM- и интеграторских команд, строящих киоски, HMI-панели и signage-парки — один стек для UI, образа и OTA, без per-device роялти на движок. Открытый движок внутри; Fleet OS для жизненного цикла устройства.