On March 19th, LG introduced webOS Open Source Edition with the intention of opening up webOS again to the world of development to move beyond TVs. This is the second time an open-source version of webOS has been released, the first coming under the failed tenure of HP back in 2011.
LG Chief Technology Officer Dr. I.P. Park. “webOS has come a long way since then and is now a mature and stable platform ready to move beyond TVs.”
webOS Open Source Edition Architecture
The following figure shows the overall architecture of webOS Open Source Edition (OSE). webOS OSE consist of a set of layers: Core Applications, Application Framework, Managers & Services, Base Components, and BSP/Kernel.
webOS OSE has Core applications as the top layer and this layer includes System UI and System app. System UI includes apps that are related to the basic user interface, such as Home Launcher and Notification. These apps are usually implemented using QML. System app includes Settings app and web browser. Settings app is used to control the system properties and implemented using Enact. As a web browser, the Chromium browser is used. Application Framework
The SDK provides a development environment for web apps and services. In this release of webOS OSE, we provide a CLI-based SDK for developing and installing web apps and services. Web apps can be packaged with services that are developed using Node.js. For more details on development/packaging of web apps and services, see Command Line Interface.
Managers & Services
Managers & Services layer includes the following components. System and Application Manager System and Application Manager (SAM) oversees the behavior of apps. SAM manages each app throughout its lifecycle, including the installation, launch, termination, and removal of the app. There are two types of apps in webOS Open Source Edition: native app and web app. In case of a web app, actual launching and management are performed by Web Application Manager as described below.
Web Application Manager
Web Application Manager (WAM) is responsible for launching and managing web apps. In addition, WAM performs CPU usage optimization, status monitoring and recovery processing, and access privileges management, all based on the running status of web apps.
Luna Surface Manager
Luna Surface Manager (LSM) is a component that works as a graphics manager. LSM displays graphical elements on the screen, manages the composition of these elements, and performs the event handling for input devices such as keyboard and pointer. LSM is also responsible for the execution and management of System UI, such as Home Launcher and Notification. LSM is implemented using Qt, and System UI is implemented using QML.
Activity Manager is responsible for managing and executing activities requested from services. An activity is requested along with a specific condition, and it is triggered when the condition is met. You can configure the activity to perform tasks such as automatic execution of specific services, callback requests, and so on.
uMediaServer (uMS) is a module that works as a server for the webOS media framework. uMS provides interfaces for media playback, manages resources, pipelines, and their policies, and manages the lifecycle of the media player.
Base Components layer includes the following components.
LS2 LS2, also called Luna Bus, is a system bus used by webOS OSE. LS2 manages the interface registration and invocation required for the interconnection among apps and services. Originally based on D-bus, LS2 has been enhanced to optimize the performance for embedded device environment. Web Engine
Chromium also includes browser logics a.k.a. Chromium browser which webOS OSE provides as the default browser app.
DB8 is an embedded JSON database that supports data storing and retrieving in the structure of key-value store. webOS OSE uses LevelDB as the back-end database. The default service associated with DB8 is the com.webos.db. The com.webos.tempdb, which allows you to configure temporary storage in memory, is also provided.
BSP/Kernel layer consists of several components to support Raspberry Pi 3. Typically, it provides evdev for event processing, Mesa for graphics support, and Wi-Fi and wired LAN for connectivity.
Except as noted, this content is licensed under Creative Commons Attribution 4.0 and sample code is licensed under Apache License 2.0.
It seems that the Window command "Read on device" don't work properly with My LG UH661V.
Once the video start, it will just stop and get back to main menu after a minute or so. If I try to change the video timeline, it stops immediately. But it seems to only happen if the file content isn't longer than ~30 minutes. Minor issues:
With AVI files and MKV files, the timeline just don't work. Trying to change the time just result in an error message on the TV. Other points:
The WebOS is up to date. Windows OS is Windows 10, up to date too. Tried to read on Xbox One and a Samsung TV, and it works just fine. Only happen with LG TV. Any thoughts on this?
Hello, I have been enjoying my OLED B6 WebOS 3.0 model for half year. Just out of the sudden my two Windows machines with LG SmartShare app cannot discover my TV anymore. So I can still stream movies if I go to my TV Photos and Videos app and it detects my computer media service(s), so I can select desired video and watch it. However I cannot start streaming from my two Windows 10 computers - each computer detects another one, however TV is not detected, I cannot right click on video file in SmartShare app and find TV set under "Play to" menu.
My TV and main PC have wired connection with my router, another Windows machine is laptop with WIFI only. I have tried to disable/enable TV's wired and wifi internet settings... no luck ;-/
I am new to WebOS and trying to setup my environment. I followed the same steps mentioned here:
After completing these steps, I found four new applications installed in my system: webOS TV CLI, webOS TV IDE, Oracle VirtualBox, webOS TV Emulator v3.0.0. Now, when I am trying to run Emulator, nothing is happening. I am using macOS High Sierra.
Can someone please help me out in this? ☹️