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

相关推荐
huangyuchi.38 分钟前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
大写-凌祁2 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable2222 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
傍晚冰川3 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
Love__Tay4 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
半导体守望者4 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
柠石榴5 小时前
【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
论文阅读·笔记·深度学习·nlp·text-to-sql
田梓燊6 小时前
数学复习笔记 27
笔记
Lester_11016 小时前
嵌入式学习笔记 - freeRTOS xTaskResumeAll( )函数解析
笔记·stm32·单片机·学习·freertos
jackson凌6 小时前
【Java学习笔记】Math方法
java·笔记·学习