Представлено випуск відкритої платформи webOS Open Source Edition 2.20, яка може застосовуватись на різних портативних пристроях, платах та автомобільних інформаційно-розважальних системах. Як еталонна апаратна платформа розглядаються плати Raspberry Pi 4. Платформа розвивається в публічному репозиторії під ліцензією Apache 2.0, а розробку курує співтовариство, дотримуючись спільної моделі управління розробкою.
Платформа webOS була спочатку розроблена компанією Palm у 2008 році та використовувалася на смартфонах Palm Pre та Pixie. У 2010 році після поглинання компанії Palm платформа перейшла в руки Hewlett-Packard, після чого HP намагалася використати цю платформу у своїх принтерах, планшетах, ноутбуках та ПК. У 2012 році компанія HP анонсувала переведення webOS у незалежний відкритий проект і в 2013 році розпочала відкриття вихідних текстів його компонентів. У 2013 році платформа була викуплена у Hewlett-Packard компанією LG і тепер застосовується на більш ніж 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 та атомарна заміна розділів (створюються два системні розділи, один з яких є активним, а другий використовується для копіювання оновлення).
Основні зміни у новому випуску:
- Почалося надання готових образів webOS для плати Raspberry Pi 4 та емулятора. Образи будуть розміщені на GitHub протягом кількох днів після випуску.
- Системний інтерфейс користувача переведено з фреймворку Moonstone на Sandstone.
- Конфігратор надає можливість перегляду списку відомих точок доступу Wi-Fi, до яких колись були підключення.
- Додана клавіатурна комбінація (Ctrl+Alt+F9) для створення скріншота (зберігається в /tmp/screenshots), а також комбінація Ctrl+Alt+F10 для видалення всіх скріншотів.
- Змінено піктограми у рядку стану. Додано можливість підключення до Wi-Fi з рядка стану.
- У браузері WebEX на вкладки додано індикатор відтворення відео або звуку.
- Для складання webruntime і WAM в движку Blink задіяний Clang.
Джерело: opennet.ru