Выпуск платформы webOS Open Source Edition 2.10

Представлен выпуск открытой платформы webOS Open Source Edition 2.10, которая может применяться на различных портативных устройствах, платах и автомобильных информационно-развлекательных системах. В качестве эталонной аппаратной платформы рассматриваются платы Raspberry Pi 4. Платформа развивается в публичном репозитории под лицензией Apache 2.0, а разработку курирует сообщество, придерживаясь совместной модели управления разработкой.

Платформа webOS в 2013 году была выкуплена компанией LG у Hewlett-Packard и применяется на более чем 70 миллионах телевизоров и потребительских устройств LG. Проект webOS Open Source Edition был основан в 2018 году, после того как компания LG попыталась вернуться к открытой модели разработки для привлечения других участников и расширения спектра устройств, на которых может применяться webOS.

Системное окружение webOS формируется с использованием инструментария и базовых пакетов OpenEmbedded, а также сборочной системы и набора метаданных от проекта Yocto. Ключевыми компонентами webOS являются менеджер системы и приложений (SAM, System and Application Manager), отвечающий за выполнение приложений и сервисов, и Luna Surface Manager (LSM), формирующий интерфейс пользователя. Компоненты написаны с использованием фреймворка Qt и браузерного движка Chromium.

Отрисовка осуществляется через композитный менеджер, применяющий протокол Wayland. Для разработки пользовательских приложений предлагается использовать web-технологии (CSS, HTML5 и JavaScript) и фреймворк Enact, основанный на React, но возможно и создание программ на С и C++ с интерфейсом на базе Qt. Пользовательская оболочка и встроенные графические приложения в основном реализованы как нативные программы, написанные с использованием технологии QML. По умолчанию предлагается оболочка Home Launcher, оптимизированная для управления с сенсорных экранов и предлагающая концепцию сменяющих друг друга карт (вместо окон).


Для хранения данных в структурированном виде с использованием формата JSON применяется хранилище DB8, использующее в качестве бэкенда БД LevelDB.
Для инициализации используется bootd на основе systemd. Для обработки мультимедийного контента предлагаются подсистемы uMediaServer и Media Display Controller (MDC), в качестве звукового сервера применяется PulseAudio. Для автоматического обновления прошивки применяется OSTree и атомарная замена разделов (создаются два системных раздела, один из которых является активным, а второй используется для копирования обновления).

Основные изменения в новом выпуске:

  • Реализован фреймворк Storage Access, предоставляющий единый интерфейс для доступа к различным хранилищам, включая внутреннее хранилище, USB-накопители и облачные системы хранения (пока поддерживается только Google Drive). Фреймворк позволяет через общий пользовательский интерфейс просматривать и открывать документы, изображения и файлы из всех настроенных провайдеров хранения данных.
  • В браузерном движке обеспечено хранение сессионных и аутентификационных Cookie в зашифрованном виде.
  • Добавлен новый сервис Peripheral Manager для управления периферийными устройствами, поддерживающий взаимодействие с устройствами через интерфейсы GPIO, SPI, I2C и UART. Сервис позволяет организовать управления новыми устройствами без изменения исходных текстов платформы.
  • Расширены возможности модели управления доступом ACG (Access Control Groups), применяемой для ограничения полномочий сервисов, использующих Luna Bus. В новом выпуске на ACG переведены все старые сервисы, в которых ранее использовалась старая модель безопасности. Изменён синтаксис правил ACG.

Release. Ссылка here.