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

相关推荐
ChindongX几秒前
笔记:解决窗口透明度不生效问题 —— QGraphicsOpacityEffect 的使用
笔记·qt
aaaameliaaa18 分钟前
分支与循环
c语言·笔记
中屹指纹浏览器29 分钟前
2026住宅代理IP纯度检测、链路溯源与指纹浏览器适配调优方案
经验分享·笔记
xuhaoyu_cpp_java9 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
Cloud_Shy61812 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
做cv的小昊12 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风12 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
伊布拉西莫16 小时前
【流畅的Python】第20章:并发执行器 — 学习笔记
笔记·python·学习
AOwhisky18 小时前
学习自测与解析:MySQL第五、六、七期核心知识点详解
运维·数据库·笔记·学习·mysql·云计算
niuniuyi~18 小时前
QT学习笔记
笔记·qt·学习