The Eclipse Oniro Core project hosts an open-source production ready platform that can run on a variety of IoT devices - from microcontrollers powered by an RTOS (such as Zephyr) to powerful multi-core CPUs running a general purpose kernel such as Linux.
The Oniro core platform is a stable horizontal base. For a full vertical solution or product more work need to be done on integration, testing and verification by the device maker. The Eclipse Oniro OpenHarmony aims to bridge this gap by providing the OpenHarmony software stack with conformance tests on top of the Oniro core platform for a better product creation experience.
Eclipse Oniro OH integrates Oniro reference hardware with OH software components on top of the Oniro core platform, to demonstrate a full vertical solution.
These blueprints can be used by any device maker as the basis to start customizing their own device software on top of Oniro and OH. This approach can significantly shorten the path to market as the vendor can skip the initial stages of implementing the custom OS architecture. It could also give access to an existing ecosystem of applications and services.
Eclipse Oniro OH will have a life cycle independent of Oniro Core to allow the roadmap to reflect the needs of the industry, the partners and the community. Adding functionalities from this add-on makes Oniro a OpenHarmony Compatible reference distribution.
Creating a vertical Oniro OH solution has advantages for the Oniro Project. Some of them are outlined below.
- Provides a way to demonstrate Oniro features and technology using functional IoT device examples.
- Simplifies discussion with potential partners when one is able to show a real-world IoT device (albeit not fully-featured) built on top of Oniro by reducing the barrier to entry.
- Allows more thorough integration testing of Oniro components based on real user stories.
- Access to existing ecosystem for applications and services.
For Oniro, we want to provide blueprints of some IoT devices that can be built using Oniro. Eclipse Oniro OH is the first vertical solution add-on to provide this.
The Project can be divided into two different parts, license-wise: First Party and Third Party.
- First Party is software created by the Project from zero
- Third-Party is software reused by the Project (such as libraries, components, tools, and other Software Content) that is patched according to the "Upstream First" principle.
First Party software is licensed under Apache License, Version 2.0 for new code and MIT license for Yocto layers and configuration.
Third-Party Software is constrained by the choice made upstream and it can be in many different licenses. Due to its nature, see background for more details, Oniro OpenHarmony will reuse many components from third parties that it needs to patch and adapt for its special requirements and needs. This involves -- unlike many other projects -- that both the amount of software that is
utilized and the number of licenses is likely to be larger than usual.
This list of licenses would include both non-copyleft and copyleft licenses, including the GNU GPL family.
The Initial Contribution is licensed under the Apache License, version 2.0. This is a precise choice in order to permit the largest implementation of the Project in embedded software devices with the license that still preserves the open-source nature of the Project, gives some form of protection from patent ambushes, but leaves contributors with the largest freedom to reimplement
the software in the unrelated project, including for writing Oniro-compatible applications and hardware objects with different operating systems. It shall be noted that Apache 2.0 is inbound compatible with Eclipse Public License 2.0.
For third-party software, the upstream constraints on the licensing dictate both the code hosted and the provided patches, which need to be under the same or compatible license, but preferably under the original license in order to increase the chances that the patch is accepted and adopted upstream.
It might be worth noting that the above could include non-OSI approved licenses, although the general policy of the project is to avoid them as much as possible. Conversely, in the project's code no proprietary code is anticipated, although in order to interact with hardware certain platforms could be forced to use proprietary drivers: provided that this would be entirely the
choice of those adopting the Eclipse Oniro Core Platform for their own projects and it will not be part of Oniro which will use a standard generic hardware platform as main development basis.
Other than that, no special legal issues are foreseen.
Oniro OH is a vehicle to market the uses of the Eclipse Oniro Core Platform. And while it will have its own life cycles, it is an add-on. Having it hosted in the same place as the Oniro Core Platform makes sense.
Eclipse Oniro OH will work on the following key features over the next year to address
market gaps and partner requirements:
- OpenHarmony Application Conformance Test Suite (ACTS) compliance
- Support of Raspbery Pi4 and Qemu as hardware targets
- First meta-openharmony release based on the Oniro 2.0.x release line
The initial contribution for the Eclipse Oniro OH project is now ready to be transferred to the Eclipse Foundation. We'd like to provision the project on Eclipse Foundation infrastructure as soon as possible to develop the first Eclipse Foundation Oniro OH release and continue future maintenance releases from the Eclipse infrastructure.
The following individuals, organisations, companies and projects have expressed interest in this project:
Array
NOI Techpark
Huawei
Eclipse Oniro OH is designed to work with Oniro Core that uses the Yocto Project as its base and intends to keep compatibility with OpenHarmony. Following that choice, Eclipse Oniro OH includes various layers and recipes from the Yocto Project upstream to include various third-party software components into the project. Where needed, Eclipse Oniro OH may override the configuration of how a software component is built by overriding the default recipe inherited from the Yocto Project. In some cases, additional patches are applied to the component on a case-by-case basis. However, Oniro OH only uses a small fraction of the software components packaged inside the Yocto Project.
As described above, all the recipes and their overrides are licensed under the MIT License. Patches to software components are licensed under the original license of the software component. Newly written components will be under the Apache License,
Version 2.0 license.
Source Repository Type:
GitLab
Source Repositories:
https://gitlab.eclipse.org/eclipse/oniro-core/meta-openharmony/
- Log in to post comments