È stato pubblicato il rilascio della piattaforma aperta webOS Open Source Edition 2.14, che può essere utilizzata su vari dispositivi portatili, schede e sistemi di infotainment per autovetture. Le schede Raspberry Pi 4 sono considerate la piattaforma hardware di riferimento. La piattaforma si sviluppa in un repository pubblico sotto licenza Apache 2.0, e lo sviluppo è curato dalla comunità, seguendo un modello di gestione cooperativa.
La piattaforma webOS è stata originariamente sviluppata da Palm nel 2008 ed è stata utilizzata sugli smartphone Palm Pre e Pixie. Nel 2020, dopo l'acquisizione di Palm, la piattaforma è passata nelle mani di Hewlett-Packard, che ha cercato di utilizzare questa piattaforma nelle proprie stampanti, tablet, laptop e PC. Nel 2012, Hewlett-Packard ha annunciato il trasferimento di webOS a un progetto open source indipendente e nel 2013 ha iniziato a rendere pubblico il codice sorgente dei suoi componenti. Nel 2013, la piattaforma è stata acquistata da LG e ora è utilizzata su oltre 70 milioni di televisori e dispositivi di consumo LG. Nel 2018 è stato fondato 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 da webOS.
L'ambiente del sistema webOS è creato utilizzando strumenti e pacchetti di base OpenEmbedded, oltre a un sistema di build e a un insieme di metadati dal 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 di rendering Chromium.
Il rendering avviene tramite un gestore composito che utilizza il protocollo Wayland. Per lo sviluppo di applicazioni personalizzate, 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 un'interfaccia basata su Qt. L'interfaccia utente e le applicazioni grafiche integrate sono principalmente realizzate come programmi nativi scritti utilizzando la tecnologia QML. Per impostazione predefinita, viene offerto il launcher Home, ottimizzato per la gestione tramite schermi tattili e che propone un concetto di schede intercambiabili (invece di finestre).

Per la memorizzazione dei dati in formato strutturato utilizzando il formato JSON viene utilizzato un archivio DB8, che utilizza come backend un database LevelDB. Per l'inizializzazione viene utilizzato bootd basato su systemd. Per l'elaborazione dei contenuti multimediali sono disponibili i sottosistemi uMediaServer e Media Display Controller (MDC), mentre per l'audio viene utilizzato PulseAudio. server Per l'aggiornamento automatico del firmware viene utilizzato OSTree e la sostituzione atomica delle partizioni (vengono creati due partizioni di sistema, una delle quali è attiva mentre l'altra viene utilizzata per copiare l'aggiornamento).
Le principali novità nella nuova versione:
- Nella selezione di esempi di applicazioni proposte per impostazione predefinita è inclusa un'app per la gestione della fotocamera. L'app fornisce funzionalità di base per la cattura di foto e la registrazione di video, e può essere utilizzata come base per lo sviluppo di applicazioni più avanzate per la fotocamera.
- È stato effettuato il passaggio alla creazione di build a 64 bit, comprese 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'estensione per l'editor di codice open source Visual Studio Code, che semplifica lo sviluppo di applicazioni web specifiche per webOS, applicazioni Enact e servizi JavaScript.
- È stato attivato il servizio di risposta anticipata alla mancanza di memoria nel sistema systemd-oomd, che consente di rilevare l'inizio delle esitazioni a causa di mancanza di risorse e di terminare selettivamente i processi ad alta richiesta di risorse in una fase in cui il sistema non si trova ancora in uno stato critico e non inizia a ridurre intensamente la cache e a spostare i dati nella memoria 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.
- Nella componente g-camera-pipeline è stata 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 embedded Yocto sono stati aggiornati alla release 3.1.
- Nel Memory Manager è stata implementata la gestione dei segnali D-Bus.
Si può inoltre evidenziare il progetto OpenLGTV, nell'ambito del quale si lavora al reverse engineering dei firmware per i televisori LG, al fine di ampliarne le funzionalità, correggere errori e verificare la conformità delle licenze copyleft nell'uso di componenti aperti (i firmware sono parzialmente aperti). Il progetto sviluppa lo strumento epk2extract per l'estrazione e decrittazione dei firmware e di diversi dati dai televisori LG, Hisense, Sharp, Philips/TPV e Thompson, oltre a un repository di pacchetti webOS Brew e strumenti per ottenere i diritti di root sul televisore (RootMyTV). Il progetto fornisce ambienti di build per creare immagini di sistema per televisori basati su schede LG NC4 e LG115x, e antichi firmware modificati per i televisori Saturn S6, Saturn S7 e LG 2010 e 2011 basati su chip Broadcom.
Fonte: opennet.ru
