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

HarmonyOS进程通信及原理

大家好,我是学徒小z,最近在研究鸿蒙中一些偏底层原理的内容,今天分析进程通信给大家,请用餐😊

文章目录

  • 进程间通信
    • 1. 通过公共事件(@ohos.commonEventManager)
      • 公共事件的底层原理
    • 2. IPC Kit能力
  • Lite IPC 的归属与特点
    • 1. 所属内核
    • 2. 核心思想
    • 3.公共事件子系统
  • 鸿蒙内核小知识

进程间通信

1. 通过公共事件(@ohos.commonEventManager)

公共事件的底层原理

  • 公共事件是一种基于发布-订阅模型的通信机制,其底层依赖于 CES(Common Event Service) 和 Binder 驱动 。
  • 发布者将事件发送到系统事件总线,订阅者 通过注册感兴趣的事件来接收消息
    公共事件从系统角度可分为:系统公共事件和自定义公共事件。
  • 系统公共事件:CES内部定义的公共事件,当前仅支持系统应用和系统服务发布,例如HAP安装、更新、卸载等公共事件。
  • 自定义公共事件:应用定义的公共事件,可用于实现跨进程的事件通信能力。

2. IPC Kit能力

  • IPC:设备内的进程间通信(Inter-Process Communication)
  • RPC:设备间的进程间通信(Remote Procedure Call)
    IPC/RPC用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,后者使用软总线驱动,用于跨设备跨进程通信。需要跨进程通信的原因是因为每个进程都有自己独立的资源和内存空间,其他进程不能随意访问不同进程的内存和资源,IPC/RPC便是为了突破这一点。
    CES是通过IPC能力实现的

Lite IPC 的归属与特点

1. 所属内核

Lite IPC 是 LiteOS-A 内核 的核心功能之一,主要用于支持中型设备(如智能音箱、路由器等)的进程间通信LiteOS-A 是鸿蒙系统中面向中型设备的内核,提供比 LiteOS-M 更丰富的功能,同时保持较高的性能和灵活性

2. 核心思想

Lite IPC 的核心思想是在内核态为每个服务任务维护一个 IPC 消息队列 ,并通过 LiteIPC 设备文件向上层用户态程序提供接口
这种设计使得 Lite IPC 能够以较低的资源开销实现高效的跨进程通信

3.公共事件子系统

在这里插入图片描述

鸿蒙内核小知识

鸿蒙操作系统的多内核设计通过 LiteOS-M 、LiteOS-A 、Linux 和 UniProton 这四种内核部件,实现了对不同设备和场景的全面覆盖

  • LiteOS-M(通常小于1MB,最小128KB) :轻量级,适用于资源受限的小型设备。
  • LiteOS-A (1-128MB):中型设备内核,兼顾性能和功能。
  • Linux (最小128MB):高性能内核,适用于智能手机和智能终端。
  • UniProton(最小1GB) :实时性内核,适用于工业和汽车领域。

http://www.kler.cn/a/552690.html

相关文章:

  • 初识Linux(9):程序地址空间
  • 特力康输电线路杆塔倾斜智能监测装置:创新技术如何提升电网安全
  • 使用DeepSeek自动获取视频双语字幕srt文件【工具说明】
  • 就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的Community[社团属性]深入浅出
  • 【鸿蒙Next】优秀鸿蒙博客集锦
  • linux中yum是干啥的?
  • Unity3D UGUI性能消耗和管理详解
  • HTML之JavaScript Form表单事件
  • Ubuntu 下 nginx-1.24.0 源码分析 - NGX_MAX_ALLOC_FROM_POOL
  • 基于智能体和RWA的分布式商业生态商业模型架构设计
  • 数字化到“数智化”:AI重构商业世界的底层逻辑
  • 【Prometheus】prometheus结合pushgateway实现脚本运行状态监控
  • PyQt加载UI文件
  • HarmonyOS NEXT 5.0.0.126 最新升级内容详解
  • 浅谈模组-相机鬼像
  • 【面试题系列】Java 多线程面试题深度解析
  • 硕成C语言24
  • 【核心算法篇二】《DeepSeek NLP实战:BERT/GPT/LLM全系调优》
  • MySQL5.7 创建用户并授予超管权限脚本
  • 在 Ubuntu 22.04 中修改主机名称(hostname)