Представлено випуск відкритої платформи webOS Open Source Edition 2.10, яка може застосовуватись на різних портативних пристроях, платах та автомобільних інформаційно-розважальних системах. Як еталонна апаратна платформа розглядаються плати Raspberry Pi 4. Платформа розвивається в публічному репозиторії під ліцензією Apache 2.0, а розробку курує співтовариство, дотримуючись спільної моделі управління розробкою.
Платформа webOS була спочатку розроблена компанією Palm у 2008 році та використовувалася на смартфонах Palm Pre та Pixie. В результаті поглинання компанії Palm у 2010 році платформа перейшла в руки Hewlett-Packard, після чого HP намагалася використати цю платформу у своїх принтерах, планшетах, ноутбуках та ПК. У 2012 році компанія HP анонсувала переведення webOS у незалежний відкритий проект і в 2013 році розпочала відкриття вихідних текстів його компонентів. У 2013 році платформа була викуплена компанією LG у Hewlett-Packard і тепер застосовується на більш ніж 70 мільйонах телевізорів та споживчих пристроїв LG. У 2018 році було засновано проект webOS Open Source Edition, через який компанія 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.
Джерело: opennet.ru