OpenHarmony Overview
1 Project Introduction
OpenHarmony is an open-source project incubated and operated by the OpenAtom Foundation. Its goal is to face the all-scenario, all-connected, all-intelligent era and, through an open-source approach, build a framework and platform for smart-terminal-device operating systems, promoting the prosperity of the Internet of Everything industry.
1.1 Technical Architecture
OpenHarmony follows a layered design as a whole, from bottom to top: the kernel layer, the system service layer, the framework layer, and the application layer. System functionality unfolds level by level according to "system > subsystem > component". In multi-device deployment scenarios, non-essential components can be pruned according to actual needs. The OpenHarmony technical architecture is shown below.

1.1.1 Kernel Layer
· Kernel subsystem: adopts a multi-kernel design (Linux kernel or LiteOS) and supports choosing an appropriate OS kernel for different resource-constrained devices. The Kernel Abstract Layer (KAL) hides multi-kernel differences and provides the upper layer with basic kernel capabilities, including process/thread management, memory management, file system, network management, and peripheral management.
· Driver subsystem: the Driver Framework (HDF) is the foundation of the system's hardware ecosystem openness, providing unified peripheral access capabilities and a driver development and management framework.
1.1.2 System Service Layer
The system service layer is the collection of OpenHarmony's core capabilities, serving applications through the framework layer. This layer contains the following parts:
· System basic capability subsystem set: provides the basic capabilities for distributed applications to run, schedule, and migrate across multiple devices. It is composed of subsystems such as distributed softbus, distributed data management, distributed task scheduling, common basic libraries, multi-modal input, graphics, security, and AI.
· Basic software service subsystem set: provides common, general-purpose software services, composed of event notification, telephone, multimedia, DFX (Design For X)
· Enhanced software service subsystem set: provides differentiated, capability-enhancing software services for different devices, composed of subsystems such as smart-screen-specific services, wearable-specific services, and IoT-specific services.
· Hardware service subsystem set: provides hardware services, composed of subsystems such as location services, user IAM, wearable-specific hardware services, and IoT-specific hardware services.
Note:
Depending on the deployment environment of different device forms, the basic software service subsystem set, the enhanced software service subsystem set, and the hardware service subsystem set can be pruned at the subsystem granularity, and each subsystem can be pruned at the function granularity internally.
1.1.3 Framework Layer
The framework layer provides application development with a multi-language user-program framework and Ability framework (C/C++/JS, etc.), the ArkUI framework for the JS language, and multi-language framework APIs exposed by various software and hardware services. Depending on the degree of componentized pruning of the system, the APIs supported by the device will also differ.
1.1.4 Application Layer
The application layer includes system applications and third-party non-system applications. An application consists of one or more FAs (Feature Ability) or PAs (Particle Ability). Among them, an FA has a UI interface and provides the ability to interact with users; a PA has no UI interface and provides the ability to run background tasks 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.2 Technical Features
1.2.1 Hardware Mutual Assistance, Resource Sharing
Distributed softbus:
· The distributed softbus is the unified foundation for multi-device terminals, providing unified distributed communication capabilities for seamless interconnection between devices, and can quickly discover and connect devices and efficiently transmit tasks and data.
Distributed data management:
· Distributed data management implements distributed management of application data and user data based on the distributed softbus. User data is no longer bound to a single physical device; business logic and data storage are separated, and data flows seamlessly when applications run across devices, creating the foundational conditions for a consistent, smooth user experience.
Distributed task scheduling:
· Distributed task scheduling builds a unified distributed service management (discovery, synchronization, registration, invocation) mechanism based on technical features such as distributed softbus, distributed data management, and distributed Profile. It supports remote launch, remote invocation, bind/unbind, and migration of cross-device applications, and can select the most appropriate device to run distributed tasks according to different devices' capabilities, locations, business running states, resource usage, combined with the user's habits and intents.
Device virtualization:
· The distributed device virtualization platform can realize resource fusion, device management, and data processing of different devices, treating surrounding devices as extensions of the phone's capabilities to jointly form a super virtual terminal.
1.2.2 Develop Once, Deploy on Multiple Devices
OpenHarmony provides the user-program framework, the Ability framework, and the UI framework, which can ensure that the developed application maintains consistency when running on multiple terminals. Develop once, deploy on multiple devices.
The multi-terminal software platform APIs are consistent, ensuring the runtime compatibility of user programs.
· Supports previewing the terminal's capability adaptation (CPU/memory/peripherals/software resources, etc.) during development.
· Supports scheduling the user presentation according to the compatibility between the user program and the software platform.
1.2.3 Unified OS, Elastic Deployment
Through design methods such as componentization and component elasticity, OpenHarmony allows hardware resources to scale up or down, elastically deploying across multiple terminal devices as needed, fully covering ARM, RISC-V, x86 and other CPUs, and RAM from hundreds of KiB to GiB.
