Die Ausgabe der open-source Plattform webOS Open Source Edition 2.10 wurde vorgestellt, die auf verschiedenen tragbaren Geräten, Platinen und Infotainmentsystemen in Fahrzeugen eingesetzt werden kann. Als Referenz-Hardwareplattform werden Raspberry Pi 4 Platinen betrachtet. Die Plattform wird in einem öffentlichen Repository unter der Lizenz Apache 2.0 weiterentwickelt und die Entwicklung erfolgt durch die Gemeinschaft unter einem gemeinsamen Entwicklungsmodell.
Die webOS-Plattform wurde ursprünglich 2008 von Palm entwickelt und fand Verwendung in den Smartphones Palm Pre und Pixie. Nach der Übernahme von Palm im Jahr 2010 gelangte die Plattform zu Hewlett-Packard, das anschließend versuchte, sie in seinen Druckern, Tablets, Laptops und PCs einzusetzen. 2012 kündigte HP an, webOS in ein unabhängiges Open-Source-Projekt zu überführen, und begann 2013 mit der Veröffentlichung des Quellcodes seiner Komponenten. Im Jahr 2013 wurde die Plattform von LG von Hewlett-Packard übernommen und wird nun in mehr als 70 Millionen Fernsehern und Verbraucherelektronik von LG eingesetzt. 2018 wurde das Projekt webOS Open Source Edition ins Leben gerufen, um LGs Rückkehr zu einem offenen Entwicklungsmodell zu unterstützen, andere Teilnehmer zu gewinnen und den unterstützten Gerätespektrum von webOS zu erweitern.
Die Systemumgebung von webOS wird mit Werkzeugen und Basis-Paketen von OpenEmbedded sowie mit dem Build-System und den Metadaten des Yocto-Projekts erstellt. Zu den Schlüsselfunktionen von webOS gehören der System- und Anwendungsmanager (SAM, System and Application Manager), der für die Ausführung von Anwendungen und Diensten zuständig ist, und der Luna Surface Manager (LSM), der die Benutzeroberfläche gestaltet. Die Komponenten sind mit dem Qt-Framework und der Chromium-Browser-Engine entwickelt.
Die Darstellung erfolgt über einen Kompositionsmanager, der das Wayland-Protokoll nutzt. Für die Entwicklung von Benutzeranwendungen wird empfohlen, Web-Technologien (CSS, HTML5 und JavaScript) sowie das auf React basierende Framework Enact zu verwenden. Es ist jedoch auch möglich, Anwendungen in C und C++ mit einer Benutzeroberfläche auf Qt-Basis zu erstellen. Die Benutzeroberfläche und die integrierten grafischen Anwendungen werden hauptsächlich als native Programme implementiert, die mit der QML-Technologie geschrieben sind. Standardmäßig wird eine Home Launcher-Oberfläche angeboten, die für die Steuerung mit Touchscreens optimiert ist und das Konzept wechselnder Karten (statt Fenstern) bietet.

Für die strukturierte Speicherung von Daten im JSON-Format wird der DB8-Speicher verwendet, der LevelDB als Backend nutzt. Die Initialisierung erfolgt über bootd, das auf systemd basiert. Zur Verarbeitung von Multimedia-Inhalten stehen die Subsysteme uMediaServer und Media Display Controller (MDC) zur Verfügung, wobei als Audio-Dienst PulseAudio zum Einsatz kommt. Server Für die automatische Aktualisierung der Firmware werden OSTree und atomare Partitionstauschmethoden verwendet (es werden zwei Systempartitionen erstellt, von denen eine aktiv ist und die andere zum Kopieren des Updates dient).
Die wichtigsten Änderungen in der neuen Version:
- Das Storage Access-Framework ermöglicht einen einheitlichen Zugriff auf verschiedene Speicher, einschließlich interner Speicherung, USB-Laufwerken und Cloud-Speichersystemen (derzeit wird nur Google Drive unterstützt). Das Framework erlaubt es, über eine gemeinsame Benutzeroberfläche Dokumente, Bilder und Dateien aus allen konfigurierten Speicheranbietern anzuzeigen und zu öffnen.
- Im Browser-Engine werden Sitzungs- und Authentifizierungscookies verschlüsselt gespeichert.
- Ein neuer Service, der Peripheral Manager, zur Verwaltung von Peripheriegeräten wurde hinzugefügt, der die Interaktion mit Geräten über die Schnittstellen GPIO, SPI, I2C und UART unterstützt. Der Service ermöglicht die Verwaltung neuer Geräte, ohne die Quelltexte der Plattform zu ändern.
- Die Möglichkeiten des ACG (Access Control Groups)-Modells zur Steuerung des Zugriffs wurden erweitert, das zur Einschränkung der Befugnisse von Services, die den Luna Bus verwenden, eingesetzt wird. In dieser neuen Version wurden alle alten Services, die zuvor das alte Sicherheitsmodell verwendeten, auf ACG umgestellt. Die Syntax der ACG-Regeln wurde geändert.
Quelle: opennet.ru
