The Eclipse Oniro Core project hosts an open-source operating system 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.
Conventional documentation tends to document all the flags, settings and hooks to extend to OS to fit the needs of the device maker but still leaves a lot of integration work and testing for the device maker. This leads to a suboptimal product creation experience. In order to attract the community to this operating system, we’d like to go beyond the regular documentation to demonstrate how to use the OS to build IoT products.
Eclipse Oniro Blueprints will integrate Oniro reference hardware with additional software and custom applications in order to provide a thoroughly tested "book of recipes" and documentation to build various IoT devices.
These blueprints can be used by any device maker as the basis to start customizing their own device software on top of Oniro. This approach can significantly shorten the path to market as the vendor can skip the initial stages of implementing the custom OS architecture.
A blueprint will implement a minimum viable IoT product and will be managed independently of the Oniro core releases.
Each blueprint will have a life cycle independent of other blueprints and Oniro Core to allow the roadmap to reflect the needs of the industry, the partners and the community. Depending on community interest (or lack thereof), old blueprints may get retired and blueprints for new devices may be added to the roadmap. Popular blueprints may receive additional features over the course of multiple releases.
Creating blueprints has many 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.
- Multiple blueprints will gain features to communicate with each other and work as a single ecosystem of devices thereby demonstrating the real value of the Oniro Project.
- Blueprints will reduce the barrier to entry for the community to engage with the Oniro Project due to the use of low-cost commodity hardware.
For Oniro, we want to provide blueprints of some IoT devices that can be built using Oniro. A Blueprint may be thought of as a set of instructions to put together some hardware, integrate it with Oniro running an application that mimics a real-world IoT device.
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
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 detail, Eclipse blueprints 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 Blueprints are a vehicle to market the uses of the Eclipse Oniro Core Platform. And while blueprints will have their own life cycles, having it hosted in the same place as the Oniro Core Platform makes sense.
Eclipse Oniro Blueprints will work on the following key features across various blueprints over the next year to address market gaps and partner requirements:
- Support for OTA update solution for Linux and Zephyr in the blueprints.
- Periodic update releases to address existing security issues.
- Eclipse Oniro Blueprints will share a common set of data exchange formats and protocols allowing them to talk to each other and become part of a large ecosystem of “smart” devices.
The initial contribution for the Eclipse Oniro Blueprints 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 create the first Eclipse Foundation Oniro Blueprints release and continue future maintenance releases from the Eclipse infrastructure.
The following individuals, organisations, companies and projects have expressed interest in this project:
- SECO
- Linaro
- Array
- NOI Techpark
- Synesthesia
- Huawei
Eclipse Oniro Blueprints are 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 Blueprints includes various layers and recipes from the Yocto Project upstream to include various third-party software components into the project. Where needed, Eclipse Oniro Blueprints 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 Blueprints only uses a small fraction of the software components packaged inside the Yocto Project for the core image and blueprints.
The goal is to be able to share these layers and recipes with OpenHarmony in the future.
As described above, all the recipes and their overrides are licensed under the Apache License, Version 2.0. Patches to software components are licensed under the original license of the software component.
- Log in to post comments
New Project Proposal: Oniro Blueprints
Submitted by Amit Kucheria on Fri, 04/15/2022 - 05:14
Hi EMO,
Please review this proposal for a Oniro Blueprint project.
Regards,
Amit
New Project Proposal: Oniro Blueprints
Submitted by Amit Kucheria on Fri, 04/15/2022 - 05:16
New Project Proposal: Oniro Blueprints