È stata rilasciata la versione della piattaforma open source webOS Open Source Edition 2.14, che può essere utilizzata su vari dispositivi portatili, schede e sistemi di infotainment per auto. Come piattaforma hardware di riferimento vengono considerate le schede Raspberry Pi 4. La piattaforma è in fase di sviluppo in un repository pubblico sotto licenza Apache 2.0, ed è curata dalla comunità, seguendo un modello di gestione dello sviluppo collaborativo.
La piattaforma webOS è stata originariamente sviluppata da Palm nel 2008 e utilizzata sugli smartphone Palm Pre e Pixie. Nel 2020, dopo l'acquisizione di Palm, la piattaforma è passata a Hewlett-Packard, che ha cercato di utilizzare questa piattaforma nelle proprie stampanti, tablet, laptop e PC. Nel 2012, HP ha annunciato il passaggio di webOS a un progetto open source indipendente, e nel 2013 ha iniziato a rendere disponibili i codici sorgente dei suoi componenti. Nel 2013, la piattaforma è stata acquisita da LG, che ora la utilizza su oltre 70 milioni di televisori e dispositivi di consumo. Nel 2018, è stato avviato il progetto webOS Open Source Edition, attraverso il quale LG ha cercato di tornare a un modello di sviluppo aperto, coinvolgendo altri partecipanti e ampliando la gamma di dispositivi supportati in webOS.
L'ambiente di sistema webOS è costituito utilizzando strumenti e pacchetti base di OpenEmbedded, insieme a un sistema di build e a un set di metadati del progetto Yocto. I componenti chiave di webOS includono il gestore di sistema e applicazioni (SAM, System and Application Manager), responsabile dell'esecuzione di applicazioni e servizi, e il Luna Surface Manager (LSM), che forma l'interfaccia utente. I componenti sono scritti utilizzando il framework Qt e il motore del browser Chromium.
Il rendering avviene tramite un compositore che applica il protocollo Wayland. Per lo sviluppo di applicazioni utente, si consiglia di utilizzare tecnologie web (CSS, HTML5 e JavaScript) e il framework Enact, basato su React, ma è possibile anche creare programmi in C e C++ con interfacce basate su Qt. L'interfaccia utente e le applicazioni grafiche integrate sono principalmente realizzate come programmi nativi, scritti utilizzando la tecnologia QML. Di default, viene offerto l'interfaccia Home Launcher, ottimizzata per la gestione tramite touchscreen e che propone un concetto di schede che si alternano (invece di finestre).

Per archiviare i dati in un formato strutturato JSON, viene utilizzato il database DB8, che impiega LevelDB come backend. L'inizializzazione avviene tramite bootd basato su systemd. Per la gestione dei contenuti multimediali, sono disponibili i sottosistemi uMediaServer e Media Display Controller (MDC), utilizzando PulseAudio per l'audio. server Per l'aggiornamento automatico del firmware si utilizza OSTree e la sostituzione atomica delle partizioni (vengono create due partizioni di sistema, una delle quali è attiva, mentre l'altra viene utilizzata per copiare l'aggiornamento).
Le principali novità di questa versione:
- Tra gli esempi di applicazioni proposte di default è inclusa un'app per la gestione della fotocamera. Questa app offre funzionalità di base per scattare foto e registrare video, e può essere utilizzata come base per sviluppare applicazioni più avanzate per la fotocamera.
- È stata effettuata la transizione alla creazione di build a 64 bit, incluse le build per la scheda Raspberry Pi 4 (rpi4-64) e l'emulatore (qemux86). Il supporto per le build a 32 bit è stato dichiarato obsoleto.
- È stato proposto un componente aggiuntivo per l'editor di codice Visual Studio Code, che semplifica lo sviluppo di applicazioni web specifiche per webOS, applicazioni Enact e servizi JavaScript.
- È attivato il servizio di risposta rapida alla scarsità di memoria nel sistema systemd-oomd, consentendo di rilevare l'inizio di ritardi causati da carenza di risorse e di chiudere selettivamente i processi che consumano molte risorse in una fase in cui il sistema non è ancora in uno stato critico e non inizia a ridurre intensamente la cache e a scaricare i dati nella partizione di swap.
- Nel Network Manager è stato configurato l'avvio del servizio wpa-supplicant nelle build per le schede Raspberry Pi 4.
- Nella build per l'emulatore sono stati aggiunti i file eseguibili occlientbasicops e ocserverbasicops, aggiornate le regole udev per il modulo LGE UWB.
- Nel componente g-camera-pipeline migliorata la funzionalità relativa alla registrazione audio.
- Il motore del browser è stato aggiornato a Chromium 91.
- I componenti della piattaforma per la creazione di sistemi Linux integrati Yocto sono stati aggiornati alla release 3.1.
- Nel Memory Manager è stata implementata la gestione dei segnali D-Bus.
In aggiunta, si può menzionare il progetto OpenLGTV, che si occupa del reverse engineering dei firmware per i televisori LG, al fine di espandere le loro funzionalità, correggere errori e verificare il rispetto delle licenze copyleft nell'uso di componenti open source (i firmware sono parzialmente aperti). Il progetto sviluppa strumenti come epk2extract per estrarre e decifrare firmware e vari dati dai televisori LG, Hisense, Sharp, Philips/TPV e Thompson, oltre a un repository di pacchetti di webOS Brew e strumenti per ottenere i diritti di root sul televisore (RootMyTV). Il progetto fornisce ambienti di raccolta per la creazione di immagini di sistema per televisori basati sulle schede LG NC4 e LG115x, e firmware modificati precedenti per i televisori Saturn S6, Saturn S7 e LG del 2010 e 2011 basati su chip Broadcom.
Fonte: opennet.ru
