De release van de open source webOS Open Source Edition 2.20 is gepresenteerd, die kan worden toegepast op verschillende draagbare apparaten, borden en in-car infotainmentsystemen. Als referentie-hardwareplatform worden Raspberry Pi 4-borden beschouwd. Het platform wordt ontwikkeld in een openbaar repository onder de Apache 2.0-licentie en de ontwikkeling wordt gecoƶrdineerd door de community, waarbij een gezamenlijke ontwikkelingsmodel wordt gevolgd.
Het webOS-platform werd oorspronkelijk ontwikkeld door Palm in 2008 en werd gebruikt op de Palm Pre- en Pixie-smartphones. In 2010, na de overname van Palm, ging het platform over naar Hewlett-Packard, dat vervolgens probeerde het platform te gebruiken in zijn printers, tablets, laptops en pc's. In 2012 kondigde HP de overdracht van webOS aan naar een onafhankelijk open project en begon in 2013 met het vrijgeven van de broncodes van de componenten. In 2013 is het platform door LG overgenomen van Hewlett-Packard en wordt nu gebruikt op meer dan 70 miljoen LG-televisies en consumentenelektronica. In 2018 werd het project webOS Open Source Edition opgericht, waarmee LG probeerde terug te keren naar een open ontwikkelmodel, andere deelnemers aan te trekken en het aantal ondersteunde apparaten in webOS uit te breiden.
De systeemomgeving van webOS wordt gevormd met behulp van tools en basispakketten van OpenEmbedded, evenals een build-systeem en een set metadata van het Yocto-project. Belangrijke componenten van webOS zijn de systeem- en applicatiebeheerder (SAM, System and Application Manager), die verantwoordelijk is voor het uitvoeren van applicaties en services, en de Luna Surface Manager (LSM), die de gebruikersinterface vormt. De componenten zijn geschreven met behulp van het Qt-framework en de browser-engine Chromium.

De rendering wordt uitgevoerd via een compositor management dat het Wayland-protocol gebruikt. Voor de ontwikkeling van gebruikersapplicaties wordt aanbevolen om webtechnologieƫn (CSS, HTML5 en JavaScript) en het Enact-framework, dat is gebaseerd op React, te gebruiken, maar het is ook mogelijk om programma's in C en C++ met een Qt-gebaseerde interface te maken. De gebruikersshell en ingebouwde grafische applicaties zijn grotendeels gerealiseerd als native applicaties, geschreven met behulp van QML-technologie. Standaard wordt de Home Launcher-shell aangeboden, die is geoptimaliseerd voor bediening via aanraakschermen en het concept van verwisselende kaarten biedt (in plaats van vensters).
Voor het opslaan van gegevens in een gestructureerd formaat met behulp van JSON wordt de DB8-opslag gebruikt, die LevelDB als backend gebruikt. Voor de initialisatie wordt bootd gebruikt, gebaseerd op systemd. Voor de verwerking van multimedia-inhoud zijn er subsysteem uMediaServer en Media Display Controller (MDC) beschikbaar, als geluid. de server PulseAudio wordt gebruikt. Voor automatische updates van de firmware wordt OSTree gebruikt en wordt er een atomische sectievervanging toegepast (er worden twee systeemsecties aangemaakt, waarvan er ƩƩn actief is en de andere wordt gebruikt voor het kopiƫren van de update).
Belangrijke veranderingen in de nieuwe release:
- De beschikbaarheid van kant-en-klare afbeeldingen van webOS voor de Raspberry Pi 4 en de emulator is begonnen. De afbeeldingen zullen binnen enkele dagen na de release op GitHub worden geplaatst.
- De gebruikersinterface is overgezet van het Moonstone-framework naar Sandstone.
- In de configurator is de mogelijkheid toegevoegd om een lijst van bekende Wi-Fi-toegangspunten te bekijken waarmee eerder verbinding is gemaakt.

- Er is een sneltoets (Ctrl + Alt + F9) toegevoegd voor het maken van schermafbeeldingen (opgeslagen in /tmp/screenshots), en een sneltoets (Ctrl + Alt + F10) voor het verwijderen van alle schermafbeeldingen.
- De pictogrammen in de statusbalk zijn gewijzigd. Er is de mogelijkheid toegevoegd om via de statusbalk verbinding te maken met Wi-Fi.
- In de WebEX-browser is een indicatielampje toegevoegd aan de tabbladen voor het afspelen van video of geluid.
- Voor het bouwen van webruntime en WAM in de Blink-engine wordt Clang gebruikt.
Bron: opennet.ru

