The past and present life of OpenHarmony

Table of contents

1.1.1: Background of OpenHarmony

1.1.2: The birth of OpenHarmony

1.1.3: Relationship between OpenHarmony and HarmonyOS

1.1.4: OpenHarmony’s technical architecture

1.1.5: Technical characteristics of OpenHarmony

1.1.6: Summary


OpenHarmony is an open source project incubated and operated by the OpenAtom Foundation. The goal is to build a framework and platform for intelligent terminal device operating systems based on open source methods for the full-scenario, full-connection, and full-intelligence era, and promote The prosperity and development of the Internet of Everything industry.

1.1.1: Background of OpenHarmony

With the popularization of 5G and the rapid development of the Internet of Things, more and more smart electrical devices have entered our lives. Due to the fragmentation of various equipment manufacturers, most of each smart device has its own exclusive application. In order to use these smart devices, users Devices need to install applications for different devices. As the number of devices increases, this division becomes more and more serious. Therefore, a unified operating system is needed to solve the problems of large device span and different application demands.

1.1.2: The birth of OpenHarmony

  • In August 2019, Huawei released Hongmeng OS version 1.0 at the HDC conference, which caused a great sensation at the time. I believe everyone knows the deeper reasons behind this sensation. In the current environment, especially operating systems, In important fields such as industrial software and chips, our country lacks independent and controllable core technologies. The release of Hongmeng has high hopes.

  • In June 2020, the Open Atom Open Source Foundation was officially established. It is currently the only open source foundation in my country based in China and facing the world. It is benchmarked against foreign foundations, such as the Apache Foundation.

  • In September 2020, Huawei donated the first batch of basic capability-related codes of the Harmony operating system to the Open Atomic Open Source Foundation and subsequently made it open source. OpenHarmony version 1.0 was born. At this time, its scope of capabilities was limited and basically concentrated on the OS basic framework and In terms of component architecture, the supported products are mainly lightweight screenless devices, such as Bluetooth headsets, routers, etc.

  • In May 2021, Huawei once again donated all the core basic capabilities of Harmony OS to the Open Atomic Open Source Foundation and the foundation will make it open source. This is the OpenHarmony 2.0 version. This version supports the development of simple UI applications, and the supported devices are also Upgrade to a small screen device like a smartwatch.

  • In September 2021, the Open Atom Open Source Foundation released OpenHarmony 3.0. This version opens up OpenHarmony's iconic distributed capabilities and supports the development of more basic applications, such as calendars, galleries, etc. From this version, OpenHarmony has It can support simple standard screen devices such as monitors and digital cameras.

  • In March 2022, the Open Atom Open Source Foundation officially released the OpenHarmony 3.1 Release version. The author believes that the release of this version is a milestone event, marking that OpenHarmony basically has the product capabilities for devices with screens. According to Gitee's submission record, this version has Keyboard, mouse and control versions are all supported, and it also supports multi-window management and introduces a new self-developed graphics stack. In other words, version 3.1 is ready for mobile phones and PCs...

  • In September 2022, look forward to version 930...

1.1.3: Relationship between OpenHarmony and HarmonyOS

OpenHarmony is different from traditional operating systems in that it is neither benchmarked against Android nor iOS. It is a framework and platform for the next generation of smart terminal device operating systems that are oriented to all scenarios, all connections, and all intelligence, promoting the prosperity and development of the Internet of Everything industry.

HarmonyOS is Huawei's commercial release based on OpenHarmony. It adds its own closed-source service HMS to OpenHarmony. For example, if OpenHarmony is a rough house, Huawei has refined the rough house and added its own appliances (HMS, etc.) to form HarmonyOS.

1.1.4: OpenHarmony’s technical architecture

OpenHarmony overall follows a layered design, from bottom to top: kernel layer, system service layer, framework layer and application layer. System functions are expanded step by step according to "System > Subsystem > Components". In a multi-device deployment scenario, some non-essential components can be tailored according to actual needs. The OpenHarmony technical architecture is as follows:

1_1

  • kernel layer

    • Kernel subsystem: It adopts multi-kernel (Linux kernel or LiteOS) design to support the selection of appropriate OS kernels for different resource-constrained devices. Kernel Abstract Layer (KAL, Kernel Abstract Layer) provides basic kernel capabilities to the upper layer by shielding multi-core differences, including process/thread management, memory management, file system, network management and peripheral management, etc.

    • Driver subsystem: The driver framework (HDF) is the basis for the open system hardware ecosystem, providing unified peripheral access capabilities and a driver development and management framework.

  • System service layer

    The system service layer is the core capability set of OpenHarmony, which provides services to applications through the framework layer. This layer contains the following parts:

    • System basic capability subsystem set: Provides basic capabilities for the operation, scheduling, migration and other operations of distributed applications on multiple devices. It consists of distributed soft bus, distributed data management, distributed task scheduling, common basic library, multi-mode It is composed of input, graphics, security, AI and other subsystems.

    • Basic software service subsystem set: Provides public and general software services, consisting of event notification, telephone, multimedia, DFX (Design For X) and other subsystems.

    • Enhanced software service subsystem set: Provides differentiated capability-enhanced software services for different devices, consisting of smart screen proprietary business, wearable proprietary business, IoT proprietary business and other subsystems.

    • Hardware service subsystem set: Provides hardware services and consists of subsystems such as location services, user IAM, wearable proprietary hardware services, and IoT proprietary hardware services.

    According to the deployment environment of different device forms, the basic software service subsystem set, enhanced software service subsystem set, and hardware service subsystem set can be tailored according to subsystem granularity, and each subsystem can be tailored according to function granularity.

  • Frame layer

    The framework layer provides multi-language user program frameworks and Ability frameworks such as C/C++/JS for application development, the ArkUI framework suitable for JS language, and multi-language framework APIs for various software and hardware services that are open to the outside world. Depending on the degree of componentization of the system, the APIs supported by the device will also vary.

  • Application layer

    The application layer includes system applications and third-party non-system applications. An application consists of one or more FA (Feature Ability) or PA (Particle Ability). Among them, FA has a UI interface and provides the ability to interact with users; while PA has no UI interface and provides the ability to run tasks in the background and a unified data access abstraction. Applications developed based on FA/PA can implement specific business functions, support cross-device scheduling and distribution, and provide users with a consistent and efficient application experience.

1.1.5: Technical characteristics of OpenHarmony

  1. Hardware mutual assistance, resource sharing

    Mainly achieved through the following modules

    • Distributed soft bus

      The distributed soft bus is a unified base for multi-device terminals. It provides unified distributed communication capabilities for seamless interconnection between devices. It can quickly discover and connect devices and efficiently transmit tasks and data.

    • Distributed data management

      Distributed data management is based on the ability of distributed soft bus to realize distributed management of application data and user data. User data is no longer bound to a single physical device, business logic is separated from data storage, and data is seamlessly connected when applications run across devices, creating basic conditions for creating a consistent and smooth user experience.

    • Distributed task scheduling

      Distributed task scheduling is based on technical features such as distributed soft bus, distributed data management, and distributed Profile to build a unified distributed service management (discovery, synchronization, registration, and invocation) mechanism to support remote startup of cross-device applications. Operations such as remote calling, binding/unbinding, and migration can select the most appropriate device to run distributed tasks based on the capabilities, location, business operating status, resource usage of different devices and the user's habits and intentions.

    • Device virtualization

      The distributed device virtualization platform can realize resource integration, device management, and data processing of different devices, and use peripheral devices as an extension of mobile phone capabilities to form a super virtual terminal.

  2. Develop once and deploy on multiple terminals

    OpenHarmony provides user program framework, Ability framework and UI framework, which can ensure the consistency of developed applications when running on multiple terminals. Develop once and deploy on multiple terminals.

    The multi-terminal software platform API is consistent to ensure the running compatibility of user programs.

    • Supports previewing the terminal's capability adaptation (CPU/memory/peripherals/software resources, etc.) during the development process.
    • Supports scheduling of user presentation based on compatibility of user program and software platform.
  3. Unified OS, flexible deployment

    Through design methods such as componentization and component flexibility, OpenHarmony enables hardware resources to be scaled up or down, and can be deployed flexibly on demand among a variety of terminal devices, fully covering various CPUs such as ARM, RISC-V, and x86. Hundreds of KiB to GiB of RAM.

1.1.6: Summary

This section briefly introduces the development history and technical characteristics of OpenHarmony. The author believes that as more and more developers and equipment manufacturers participate in the ecological co-construction of OpenHarmony, OpenHarmony must be a great operating system.

Guess you like

Origin blog.csdn.net/m0_68036862/article/details/134763321