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

相关推荐
蒙奇D索大25 分钟前
【11408学习记录】英语书信通知写作模板大全:5个高分句式+使用场景解析,速存每日一句拆解练习!
笔记·学习·考研·改行学it
我的golang之路果然有问题1 小时前
快速了解Go+微服务(概念和一个例子)
开发语言·笔记·后端·学习·微服务·golang
_Jyuan_2 小时前
Android Studio-相对布局(私人笔记)
android·java·ide·经验分享·笔记·android studio
CodeWithMe2 小时前
【C/C++】线程池_学习笔记
笔记·学习
江安的猪猪4 小时前
大连理工大学选修课——机器学习笔记(5):EM&K-Means
笔记·机器学习·kmeans
敲敲敲-敲代码5 小时前
【空间数据分析】缓冲区分析--泰森多边形(Voronoi Diagram)-arcgis操作
笔记·arcgis
kukuwawu5 小时前
基因组注释笔记——GeneMark-ES/ET的使用
经验分享·笔记·学习·bash·基因注释
北漂老男孩6 小时前
远程 Debugger 多用户环境下的用户隔离实践
java·笔记·学习方法
wusixuan1310046 小时前
树的序列化 - 学习笔记
笔记·学习
泽克7 小时前
1.5 城镇道路工程安全质量控制
笔记