Die Veröffentlichung der offenen Plattform webOS Open Source Edition 2.10 wurde vorgestellt, die auf verschiedenen tragbaren Geräten, Platinen und Infotainmentsystemen in Fahrzeugen verwendet werden kann. Als Referenzhardware-Plattform werden Raspberry Pi 4-Platinen betrachtet. Die Plattform wird in einem öffentlichen Repository unter der Apache 2.0-Lizenz weiterentwickelt, und die Entwicklung wird von der Community unter einem gemeinschaftlichen Entwicklungsmodell geleitet.
Die webOS-Plattform wurde ursprünglich 2008 von Palm entwickelt und kam auf den Smartphones Palm Pre und Pixie zum Einsatz. Nach der Übernahme von Palm im Jahr 2010 gelangte die Plattform zu Hewlett-Packard, das versuchte, sie in seinen Druckern, Tablets, Laptops und PCs zu nutzen. 2012 kündigte HP die Überführung von webOS in ein unabhängiges Open-Source-Projekt an und begann 2013 mit der Veröffentlichung des Quellcodes seiner Komponenten. 2013 wurde die Plattform von LG von Hewlett-Packard übernommen und wird nun auf über 70 Millionen LG-Fernsehern und -Verbrauchergeräten eingesetzt. 2018 wurde das Projekt webOS Open Source Edition gegründet, durch das LG versuchte, zu einem offenen Entwicklungsmodell zurückzukehren, andere Beteiligte einzubeziehen und die Palette der unterstützten Geräte in webOS zu erweitern.
Die Systemumgebung von webOS wird unter Verwendung von Werkzeugen und Basis-Paketen aus OpenEmbedded sowie einem Build-System und einem Satz von Metadaten des Yocto-Projekts gebildet. Zu den Schlüsselkomponenten von webOS gehören der System- und Anwendungsmanager (SAM, System and Application Manager), der für die Ausführung von Anwendungen und Diensten verantwortlich ist, und der Luna Surface Manager (LSM), der die Benutzeroberfläche gestaltet. Die Komponenten sind mit dem Qt-Framework und der Chromium-Browsing-Engine geschrieben.
Die Darstellung erfolgt über einen Compositing-Manager, der das Wayland-Protokoll verwendet. Für die Entwicklung von Benutzeranwendungen wird empfohlen, Webtechnologien (CSS, HTML5 und JavaScript) sowie das auf React basierende Enact-Framework zu verwenden, jedoch ist auch die Erstellung von Programmen in C und C++ mit einer Qt-basierten Benutzeroberfläche möglich. Die Benutzeroberfläche und die integrierten grafischen Anwendungen sind hauptsächlich als native Programme implementiert, die mit QML-Technologie erstellt wurden. Standardmäßig wird die Home Launcher-Oberfläche angeboten, die für die Steuerung über Touchscreens optimiert ist und das Konzept wechselnder Karten (anstatt Fenstern) bietet.

Zur Speicherung von Daten in strukturierter Form im JSON-Format wird das DB8-Speichersystem eingesetzt, das LevelDB als Backend verwendet. Bootd auf Basis von systemd wird zur Initialisierung verwendet. Für die Verarbeitung von Multimedia-Inhalten stehen die Teilsysteme uMediaServer und Media Display Controller (MDC) zur Verfügung, wobei als Soundlösung Server PulseAudio verwendet wird. Für die automatische Aktualisierung der Firmware kommen OSTree und atomare Partitionsersetzungen zum Einsatz (es werden zwei Systempartitionen erstellt, von denen eine aktiv ist und die andere für das Kopieren des Updates verwendet wird).
Die wesentlichen Änderungen in der neuen Version:
- Das Storage Access-Framework wurde implementiert, das eine einheitliche Schnittstelle für den Zugriff auf verschiedene Speicherorte bietet, einschließlich des internen Speichers, USB-Sticks und Cloud-Speichersystemen (derzeit wird nur Google Drive unterstützt). Das Framework ermöglicht es, über eine gemeinsame Benutzeroberfläche Dokumente, Bilder und Dateien aus allen konfigurierten Speicheranbietern anzuzeigen und zu öffnen.
- Im Browser-Engine wird die Speicherung von Sitzungs- und Authentifizierungs-Cookies in verschlüsselter Form gewährleistet.
- Ein neuer Peripheral Manager-Dienst wurde hinzugefügt, um Peripheriegeräte zu verwalten, der die Interaktion mit Geräten über die GPIO-, SPI-, I2C- und UART-Schnittstellen unterstützt. Der Dienst ermöglicht die Steuerung neuer Geräte, ohne die Quellcodes der Plattform ändern zu müssen.
- Die Möglichkeiten des Access Control Groups (ACG) Modells zur Begrenzung der Berechtigungen von Diensten, die Luna Bus verwenden, wurden erweitert. In der neuen Version wurden alle alten Dienste auf ACG umgestellt, die zuvor das alte Sicherheitsmodell verwendet hatten. Die Syntax der ACG-Regeln wurde geändert.
Quelle: opennet.ru
