HarmonyOS is a future-proof distributed operating system open to you as part of the initiatives for the all-scenario strategy, adaptable to mobile office, fitness and health, social communication, and media entertainment, to name a few. Unlike a legacy operating system that runs on a standalone device, HarmonyOS is built on a distributed architecture designed based on a set of system capabilities. It is able to run on a wide range of device forms.
Play Video
- If you are an end user, HarmonyOS integrates your various smart devices to implement fast connection, capability collaboration, and resource sharing
between them. This way, your services can be seamlessly transferred to a suitable device that delivers smooth all-scenario experience.
- If you are an application developer, HarmonyOS adopts distributed technologies to make your application development possible on different device
forms. With HarmonyOS, you will have the choice to focus on upper-layer service logic and develop applications in a much easier and more efficient
way.
- If you are a device developer, HarmonyOS uses a component-based software design to tailor itself to your particular device forms based on their
respective resource capabilities and service characteristics.
HarmonyOS provides multi-programming-language APIs for you to develop applications. You can choose from Java, Extensible Markup Language (XML), C/C++, JavaScript (JS), Cascading Style Sheets (CSS), and HarmonyOS Markup Language (HML).
Technical Architecture
----------------------
HarmonyOS is designed with a layered architecture, which from bottom to top consists of the kernel layer, system service layer, framework layer, and application layer. System functions are expanded by levels, from system to subsystem, and further to function/module. In multi-device deployment scenario, unnecessary subsystems, functions, or modules can be excluded from the system as required. The following shows the technical architecture of HarmonyOS.
.. figure:: figures/architecture.png
:scale: 50
width: 100 px
:align: center
Figure 1 Technical Architecture
Kernel Layer
------------
- Kernel subsystem: HarmonyOS uses a multi-kernel design (Linux kernel, HarmonyOS microkernel, or LiteOS) so that appropriate OS kernels can be selected for devices with different resource limitations. The kernel abstraction layer (KAL) shields differences in kernel implementations and provides the upper layer with basic kernel capabilities, including process and thread management, memory management, file system, network management, and peripheral management.
- Driver subsystem: Hardware Driver Foundation (HDF) lays the foundation for an open HarmonyOS hardware ecosystem. It allows unified access from peripheral devices and provides foundation for driver development and management.
System Service Layer
--------------------
This layer provides a complete set of capabilities essential for HarmonyOS to offer services for applications through the framework layer. The system service layer consists of the following parts:
- Basic system capability subsystem set: Implements distributed application running, scheduling, and migration across HarmonyOS devices. This
subsystem set provides the following basic capabilities: distributed virtual bus, distributed data management, distributed scheduler, utils,
multimode input, graphics, security, and AI.
- Basic software service subsystem set: Provides HarmonyOS with common and universal software services, including common event and notification,
telephony, multimedia, Design For X (DFX), as well as Mobile Sensing Development Platform (MSDP) & Device Virtualization (DV).
- Enhanced software service subsystem set: Provides HarmonyOS with differentiated and enhanced software services, including those dedicated to smart
TVs, wearables, IoT devices, and more.
- Hardware service subsystem set: Provides HarmonyOS with hardware services, including location, biometric recognition, as well as those dedicated to
wearables and IoT devices.
The basic software service, enhanced software service, and hardware service subsystem sets can be tailored by subsystems, and each subsystem can be tailored by functions, depending on the deployment scenario for a particular device form.
Framework Layer
---------------
This layer provides what you need to develop HarmonyOS applications: application framework and ability framework, specific to multiple languages (like Java, C, C++, and JS), Java and JS UI frameworks, as well as multi-language APIs for hardware and software services. The APIs designed for different HarmonyOS devices vary according to component-based tailoring.
Application Layer
-----------------
This layer consists of system applications and third-party applications. Each HarmonyOS application is powered by one or more Feature Abilities (FAs) or Particle Abilities (PAs). An FA provides a UI for user interaction. A PA has no UI and provides background task processing as well as data access. Applications developed based on FAs and PAs implement specific business characteristics and achieve cross-device scheduling and distribution, delighting users with consistent and efficient experience.