Openharmony

OpenHarmony 是一个开源的、多设备分布式操作系统,由开放原子开源基金会(OpenAtom Foundation)孵化及运营。它旨在提供跨多种设备的统一开发体验,支持一次开发,多端部署。OpenHarmony 的系统架构遵循分层设计原则,从下向上依次为内核层、系统服务层、框架层和应用层。下面是对这些层次的详细介绍:

内核层

内核层是 OpenHarmony 的基础,提供了操作系统的核心功能。根据设备的不同,OpenHarmony 支持多种类型的内核:

  • **LiteOS**: 面向 IoT 领域的实时操作系统内核,适用于资源受限的设备,如 MCU 类处理器。LiteOS 分为 LiteOS-M(面向百K级内存设备)和 LiteOS-A(面向M级内存设备)。

  • **Linux**: OpenHarmony 也支持 Linux 内核,已适配 Linux-4.19 和 Linux-5.10 版本,适用于更复杂的设备。

内核层还包括内核子系统和驱动子系统:

  • **内核子系统**: 采用多内核设计,支持 LiteOS 和 Linux,通过内核抽象层(KAL)提供统一的内核能力。

  • **驱动子系统**: 采用 C 面向对象编程模型构建,提供统一外设访问能力和驱动开发、管理框架。

系统服务层

系统服务层提供了操作系统的基本服务和功能,包括但不限于:

  • 分布式能力服务:如分布式软总线、分布式数据管理、分布式任务调度等。

  • 基础服务:包括通信、数据存储、安全、图形、多媒体等。

框架层

框架层提供了应用程序框架和开发框架,确保应用程序的运行兼容性。这一层包括:

  • 用户程序框架:为开发者提供应用程序开发的框架。

  • Ability框架:定义了应用程序的组件模型,支持多端部署。

  • UI框架:提供了用户界面的开发工具和组件。

应用层

应用层是开发者直接开发应用程序的地方,包括各种应用程序和服务。OpenHarmony 提供了丰富的 API 和开发工具,支持开发者创建多样化的应用。

技术特性

OpenHarmony 的技术特性包括:

  • **硬件互助,资源共享**:通过分布式技术实现设备间的资源共享和任务调度。

  • **一次开发,多端部署**:通过统一的 API 和框架,实现一次开发,多设备运行。

  • **统一OS,弹性部署**:支持从小型设备到大型设备的不同部署需求,适应各种硬件配置。

OpenHarmony 的设计理念是为不同类型的设备提供一个统一、灵活、可扩展的操作系统解决方案,以满足快速发展的智能设备生态系统的需求。

分布式软总线(Distributed SoftBus)是 OpenHarmony 系统中的一个关键组件,它为设备间的无缝互联提供了统一的分布式通信能力。这一系统架构的设计使得设备能够快速发现并连接,高效地传输任务和数据。以下是分布式软总线系统架构的详细描述:

架构概述

分布式软总线架构设计为模块化,以支持不同的通信方式和设备类型。它主要包括以下几个核心模块:

1. SDK(Software Development Kit)

  • 提供软总线的能力接口,如设备发现、服务发布、设备连接、远端设备信息获取、时间同步等。

  • 包含 `softbus_client.so` 库和相关的头文件,位于 `interfaces/kits` 目录。

2. Tools

  • 提供工具如 `SoftBusDumpDeviceInfo`,用于查看本地和发现的设备信息。

3. Core

  • 软总线的核心实现部分,提供 `softbus_server` 库,实现系统能力。

  • 实现了基于系统能力框架(system ability framework)的功能。

4. Discovery

  • 提供网络设备和蓝牙设备的发布、发现、连接的能力。

5. Authentication

  • 设备认证模块,提供不同连接方式的认证实现和统一的认证能力。

  • 提供 `DeviceAuthCallback` 接口,用于处理连接事件。

6. Connection

  • 提供多种连接方式,如 BLE(蓝牙低功耗)、BR(蓝牙射频)、TCP、P2P 等。

  • 启动后台连接服务,处理连接任务。

7. Transmission

  • 提供消息发送接口,支持加密和非加密信息传输。

8. Bus Center

  • 核心的本地网络服务接口,包括网络服务发现、连接、服务发布等。

  • 管理本地网络拓扑账本(NetLedger)和消息处理回环(BusLooper)。

9. Common

  • 基础代码库,包括位图、JSON 处理、消息处理、网络参数等。

10. Frame

  • 框架层,为不同系统类型(如小型系统 L0、轻量系统 L1、标准系统 L2)提供对外接口实现。

11. Adapter

  • 适配层,适配不同设备类型,如 WiFi、蓝牙等。

12. Component

  • 组件层,包括 SSL 算法库(如 mbedtls)、网络协议库(如 nstackx)等。

约束条件

  • 组网设备需在同一局域网中或距离相近的近场设备间。

  • 组网前需完成设备绑定。

  • 传输完成后,业务需主动关闭会话,释放资源。

总结

分布式软总线是 OpenHarmony 的重要特性之一,它不仅支持设备间的发现和连接,还为其他分布式子系统(如分布式数据管理、分布式任务调度等)提供基础通信能力。通过模块化的设计,分布式软总线能够适应不同的设备和通信需求,实现设备间的高效通信和资源共享。

相关推荐
flying robot3 小时前
centos7系统配置
笔记
zhdy567896 小时前
最简单方法 设置matlab坐标轴刻度标签的字号,设置坐标轴标题和图形标题,并指定字号。画出的图片背景设置为白色,
笔记
崇山峻岭之间6 小时前
Matlab学习笔记02
笔记·学习·matlab
木木em哈哈6 小时前
C语言多线程
笔记
hssfscv8 小时前
Javaweb 学习笔记——html+css
前端·笔记·学习
Dream Algorithm10 小时前
自古英雄多寂寥
笔记
yuhaiqun198910 小时前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown
apcipot_rain10 小时前
汇编语言与逆向分析 一轮复习笔记
汇编·笔记·逆向
Lv117700810 小时前
Visual Studio中的多态
ide·笔记·c#·visual studio
HollowKnightZ11 小时前
论文阅读笔记:Class-Incremental Learning: A Survey
论文阅读·笔记