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

相关推荐
Yawesh_best16 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
Ccjf酷儿18 小时前
操作系统 蒋炎岩 3.硬件视角的操作系统
笔记
习习.y19 小时前
python笔记梳理以及一些题目整理
开发语言·笔记·python
在逃热干面19 小时前
(笔记)自定义 systemd 服务
笔记
DKPT20 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
QT 小鲜肉1 天前
【孙子兵法之上篇】001. 孙子兵法·计篇
笔记·读书·孙子兵法
星轨初途1 天前
数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
c语言·开发语言·数据结构·经验分享·笔记·算法·排序算法
QT 小鲜肉1 天前
【孙子兵法之上篇】001. 孙子兵法·计篇深度解析与现代应用
笔记·读书·孙子兵法
love530love1 天前
【笔记】ComfUI RIFEInterpolation 节点缺失问题(cupy CUDA 安装)解决方案
人工智能·windows·笔记·python·插件·comfyui
愚戏师1 天前
MySQL 数据导出
数据库·笔记·mysql