当前位置: 首页 > news >正文

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

 

相关文章:

Openharmony

OpenHarmony 是一个开源的、多设备分布式操作系统,由开放原子开源基金会(OpenAtom Foundation)孵化及运营。它旨在提供跨多种设备的统一开发体验,支持一次开发,多端部署。OpenHarmony 的系统架构遵循分层设计原则&…...

24计算机考研调剂 | 华南师范大学

华南师范大学接收调剂研究生 考研调剂招生信息 学校:华南师范大学 专业:- 年级:2024 招生人数:- 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 课题组主要研究生物拉曼光谱技术、基于荧光的微生物快检技术、显微成像设备与相…...

【Node.js】全局变量和全局 API

node 环境中没有 dom 和 bom ,此外 es 基本上都是可以正常使用的。 如果一定要使用 dom 和bom,可以借助第三方库 jsdom 帮助我们实现操作。npm i jsdom 实例: const fs require(node:fs) const {JSDOM} require(jsdom)const dom new JS…...

Install Docker

Docker Desktop 直接安装 Docker Desktop Docker Desktop includes the Docker daemon (dockerd), the Docker client (docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. Linux下安装Docker CE 参考官方文档 参见阿里云的文档 # step 1…...

Orbit 使用指南 10|在机器人上安装传感器 | Isaac Sim | Omniverse

如是我闻: 资产类(asset classes)允许我们创建和模拟机器人,而传感器 (sensors) 则帮助我们获取关于环境的信息,获取不同的本体感知和外界感知信息。例如,摄像头传感器可用于获取环境的视觉信息&#xff0c…...

GPT系列模型的特点

GPT系列模型(包括GPT-1、GPT-2和GPT-3)都基于自回归机制的Transformer架构。在设计上,这些模型的核心思想是利用Transformer架构来捕捉整个序列的上下文信息,通过其独特的自回归机制逐步地整合整个序列的完整语义。GPT系列模型的设…...

Oracle Data Guard常用命令

--查询数据库角色和保护模式 select database_role,switchover_status from v$database; --切换备库为主库(切换后,主库为mount状态) --TO PRIMARY alter database commit to switchover to primary; --SESSIONS ACTIVE alter database comm…...

IM系统设计之websocket消息转发

Websocket消息转发 项目地址:gitgithub.com:muyixiaoxi/Link.git 上周面试被面试官问到:“在分布式IM系统中,如何实现多个websocket集群之间的通信”。 我在思考了良久后回答:“不会”。 随着我的回答,我和面试官的…...

关于vue 的生命周期的教程

Vue.js 是一款流行的前端框架,它提供了丰富的功能和便捷的开发式, 其中生命周期函数是 Vue 组件中非常重要的一部分。 本文将为您详细介绍 Vue 组件的生命周期函数及其执行顺序, 帮助您更好地理解和利用 Vue.js 框架。 什么是 Vue 生命周期 …...

STM32 CAN的工作模式

STM32 CAN的工作模式 正常模式 正常模式下就是一个正常的CAN节点,可以向总线发送数据和接收数据。 静默模式 静默模式下,它自己的输出端的逻辑0数据会直接传输到它自己的输入端,逻辑1可以被发送到总线,所以它不能向总线发送显性…...

Java中的常用类之Math类

Java中的Math类 一、Math类是什么?二、主要方法1.随机数2.绝对值3.向上取值4.向下取值5.四舍五入6.两个值中取大/小的 总结 一、Math类是什么? Math类是Java常用类的一种,主要方法针对于数学方面的运算,类中的所有方法都是static…...

Android冷启动优化

一、应用启动的三种状态 冷启动:系统不存在App进程(APP首次启动或APP被完全杀死)时启动APP,此时,APP的启动将经历两个阶段: 1、创建app进程:系统启动应用程序进程和虚拟机,创建app…...

jmeter之接口功能自动化

一、接口测试简述 接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。 接口分类:POST,GET,PUT,DELETE。 POST请求的数据是放在…...

【openGL4.x手册07】几何着色器

目录 一、说明二、关于几何着色器三、原始输入/输出规范3.1 实例 四、输入五、输出5.1 分层渲染 六、输出限制 一、说明 几何着色器对于渲染管线设计是一个新生事物;目前对应于几何着色器的资料不多,并且说法不一,因此如何用几何着色器&…...

鸿蒙OpenHarmony开发实战:【MiniCanvas】

介绍 基于OpenHarmony的Cavas组件封装了一版极简操作的MiniCanvas,屏蔽了原有Canvas内部复杂的调用流程,支持一个API就可以实现相应的绘制能力,该库还在继续完善中,也欢迎PR。 使用说明 添加MiniCanvas依赖 在项目entry目录执行…...

【JavaEE初阶系列】——单例模式 (“饿汉模式“和“懒汉模式“以及解决线程安全问题)

目录 🚩单例模式 🎈饿汉模式 🎈懒汉模式 ❗线程安全问题 📝加锁 📝执行效率提高 📝指令重排序 🍭总结 单例模式,非常经典的设计模式,也是一个重要的学科&#x…...

flutter-elinux的基本介绍及安装调试

搜集到两个很有用的网站: 1、flutter-elinux的基本介绍:https://juejin.cn/post/7257285697383612453 2、flutter-elinux的安装调试等:https://github.com/sony/flutter-elinux/wiki 其中,在flutter-elinux设置环境变量时&#…...

二分查找法总结

目录 1、思路讲解(LC704)2、代码思路讲解(循环不变量)(1) 左闭右闭(2)左闭右开(3)总结:左开右闭和左闭右开(4)复杂度分析 …...

Python工具-清理Unity(批量深度)清理U3D项目工程保留关键工程文件

前沿 1. Unity工程越来越多,很久不用的工程里存在了很多无用的大文件夹,极大的影响电脑容量。 2. 我电脑里面U3D工程只有17个,但容量就高达60GB,使用自己编写的工具清理后,减到了30GB多。清理了不是很重要的文件和文件…...

vue 安装脚手架报错 certificate has expired

vue 安装脚手架的时候报错,报错信息如下: 错误信息:npm ERR! request to https://registry.npm.taobao.org/vue%2fcli failed, reason: certificate has expired 翻译:npm ERR!请求到https://registry.npm.taobao.org…...

PA100K数据集实战:从下载到结构化解析全流程

1. PA100K数据集初探:为什么选择它?如果你正在研究行人属性识别,PA100K绝对是个绕不开的宝藏数据集。这个数据集包含了10万张真实监控场景下的行人图像,每张图都标注了26种常见属性——从衣着风格(比如是否穿T恤、裙子…...

如何从零构建智能FOC轮腿机器人:完整开源硬件系统终极指南

如何从零构建智能FOC轮腿机器人:完整开源硬件系统终极指南 【免费下载链接】foc-wheel-legged-robot Open source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and software developme…...

MAX78000移植Zephyr RTOS实战:从BSP创建到AI边缘设备开发

1. 项目概述与动机作为一名长期在嵌入式边缘AI和机器人领域摸爬滚打的开发者,我最近把目光投向了一块相当有潜力的板子:Maxim Integrated(现为ADI一部分)的MAX78000FTHR开发套件。这块板子的核心——MAX78000微控制器,…...

Allegro PCB设计小技巧:如何让Route Keepout区域既能走线又能打过孔(附详细步骤图)

Allegro PCB设计实战:Route Keepout区域的灵活控制技巧 在高速PCB设计中,Route Keepout区域的管理常常让工程师陷入两难境地——元件封装自带的限制区域与实际布线需求产生冲突。特别是处理PCIE等高速信号时,这种矛盾尤为突出。传统做法要么完…...

谷氨酸发酵过程的软测量建模【附模型】

✨ 长期致力于软测量、谷氨酸发酵、动力学模型、支持向量机、高斯过程、变量选择、异常状态研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)多阶段高斯…...

基于雷达与光敏传感器的低功耗智能窗防设备设计与实现

1. 项目概述:一个基于雷达与光敏的智能窗防设备几年前,我因为一次短暂的出差,家里空置了几天,回来后就一直琢磨着怎么给家里的窗户加点“动静”。市面上的智能安防摄像头固然好,但要么需要复杂的布线,要么云…...

榨干Codex!OpenAI工程师亲授Codex真正用法

你可能把 Codex 当编程助手用,改改代码,跑跑测试。但它的能力远不止于此。OpenAI 的客户支持工程师 Jason(jxnlco)告诉你,Codex 其实是一套完整的电脑工作系统,从语音输入到自动化,从浏览器操控…...

Android Root检测绕过:从逆向分析到Frida分层Hook实战

1. 这不是“绕过root检测”,而是理解检测逻辑后的精准干预在安卓逆向工程的实际工作中,“过root检测”这个说法本身就容易引发误解——它听起来像某种黑箱魔法,仿佛只要套用某个脚本、加载某个插件,就能让App对设备状态“视而不见…...

DeepSeek代码风格检查避坑指南(内部审计报告首次披露:37个被忽略的合规红线)

更多请点击: https://intelliparadigm.com 第一章:DeepSeek代码风格检查的合规性本质与审计背景 DeepSeek代码风格检查并非单纯的技术偏好约束,而是嵌入研发治理链条中的合规性控制节点。其本质是将编程实践与组织级安全策略、行业监管要求&…...

Log4Shell漏洞深度解析:Spring Boot日志注入原理与四层修复方案

1. 这个漏洞不是“远程执行代码”那么简单——它是一次对Java生态信任链的系统性击穿Log4j CVE-2021-44228,业内常简称为“Log4Shell”,2021年12月爆发时,我正在给一家金融客户的Spring Boot微服务集群做灰度发布前的安全加固。凌晨三点收到告…...