写点什么

华为鸿蒙 OS 轻量内核设计理念与关键特性

  • 2020-09-15
  • 本文字数:2069 字

    阅读完需:约 7 分钟

华为鸿蒙OS轻量内核设计理念与关键特性

9 月 10 日,在华为开发者大会 2020 上,华为消费者业务 CEO 余承东宣布推出鸿蒙 OS 2.0 版本(HarmonyOS 2.0),同时将鸿蒙 OS 的代码捐赠给开放原子开源基金会进行开源孵化。根据华为公布的鸿蒙开源路标,即日起鸿蒙面向大屏、手表、车机等 128KB-128MB 终端设备开源;2021 年 4 月,面向内存 128MB-4GB 终端设备开源;2021 年 10 月,将面向 4GB 以上所有设备开源。


鸿蒙 OS 开源项目: https://www.openatom.org/openharmony


鸿蒙 OS 代码仓库: https://openharmony.gitee.com/


本文将进一步介绍鸿蒙 OS 的轻量级内核,包括其设计理念、做了哪些优化以及关键特性。本文由 InfoQ 整理自华为开发者大会 2020 技术论坛演讲《HarmonyOS 内核设计》,由华为消费者业务 OS 平台资深专家王米虎分享,内容未经本人确认。

HarmonyOS 轻量内核设计理念

华为很早就推出了面向物联网领域开发的轻量级操作系统 LiteOS,这个系统可以很好地支撑小芯片,但是要支撑更多复杂的上层应用框架和服务,还需要对其内核做大量的改进。


纵观 IoT 产品的发展趋势,硬件能力变得越来越强大,功能也越来越丰富。早前的 IoT 硬件功能比较简单,只需要跑在 M 核上,再加一些简单的协议就可以了,内核大小通常只有几十 KB 级别;后面出现了摄像头等新设备,需要跑在 A 核处理器上,支持少量 AI 功能,内核之上的组件越来越丰富;到近几年,很多设备都配备有屏幕,给系统内核带来了比较大的需求改变,只有内核已经无法满足需求,上面还需要有应用、UI、图形界面、多媒体。在这种挑战下,内核应该怎么做?



目前业界 IoT 设备有几种比较典型的解决方案。在资源受限的场景下,一般采用的是 RTOS 方案,好处是内存占用小、启动速度快、实时性高;但缺点也很明显,首先 RTOS 系统生态不够完善,驱动核第三方库比较复杂,移植工作量很大,另外,RTOS 应用和内核不能隔离,都在统一的内存地址空间,应用代码引起的系统异常会挂死在内核,导致应用开发和产品开发无法解耦。如果基于 RTOS 方案开发 Harmony OS 的内核,上述问题都会给研发团队带来比较大的困难,并且也提高了支撑解决方案的技术人员的技术门槛。


业界另一个解决方案是基于 Linux 的方案,优点是驱动和三方库生态软件完善,移植适配也比较容易,而且应用与内核隔离,应用可以在自身独立空间中运行,确保不同应用间安全、稳定,可支撑复杂交互体验设备开发;缺点是内存占用大、启动速度慢、实时性偏弱。


而华为 Harmony OS 的轻量内核设计目标是要同时实现类 Linux 的开发体验和 RTOS 的运行效果,主要从以下三个维度来做:



首先在上层增加了 POSIX 标准库,支撑比较丰富的 API(目前已经支持 1000 多个 POSIX 接口),以使生态软件可以比较方便地移植到 Harmony OS 上;其次是内核机制增强,增加了多进程、虚拟内存,希望生态应用能够跟内核区分开来,应用挂掉之后只会挂在它的用户态,而不会影响其他应用,也会相对安全,后来又增加了动态链接,开发者拿到对应的编译工具链之后就可以在 Linux 上编译出标准的 ELF 文件,然后直接在 Harmony OS 上运行,给开发体验带来了很大的差异;最后是底层设计了 HDF 统一驱动框架,以实现一次开发跨设备、跨系统驱动共享。


HarmonyOS 轻量内核关键特性

多进程

从系统的角度看,进程是资源管理单元。OpenHarmony 内核的进程模块可以给用户提供多个进程,实现进程之间的切换和通信,帮助用户管理业务程序流程。这样用户可以将更多的精力投入到业务功能的实现中。


OpenHarmony 内核中的进程采用抢占式调度机制,支持时间片轮转调度方式和 FIFO 调度机制。OpenHarmony 内核的进程一共有 32 个优先级(0-31),用户进程可配置的优先级有 22 个(10-31),最高优先级为 10,最低优先级为 31。高优先级的进程可抢占低优先级进程,低优先级进程必须在高优先级进程阻塞或结束后才能得到调度。每一个用户态进程均拥有自己独立的进程空间,相互之间不可见,实现进程间隔离。用户态根进程 Init 由内核态创建,其它用户态进程均由 Init 进程 fork 而来。


多核

目前 Harmony OS 在支持多核的同时也支持把任务分发到不同 CPU 上面去,不过还没有做很复杂的负载均衡,因为在 IoT 设备上目前看不是很有必要,后面可以再做扩展。


虚拟内存

虚拟内存主要是为了配合多进程来做到应用之间的隔离,支持用户态内存通过缺页异常按需分配。物理内存采用的是经典的管理方式,内核态地址空间是 1-4G,用户态内核空间是 0-1G,从而减少用户态进程页表项。内核采用静态映射,提升虚实转化效率。


动态链接

Harmony OS 的动态链接特征包括:


  • 按需加载:多应用共享代码段,加载最小单元为页;

  • 符号绑定:支持立即和延迟绑定;

  • 加载地址随机化:进程代码段、数据段、堆栈段地址随机化。


权限管理

Harmony OS 为 IoT 设备引入了一个比较轻量级的权限管理,做到了进程级别的权限控制,只有授权的进程才可以访问系统资源。Disc 方面引入了用户组的概念,可以根据进程 uid 的配置灵活划分文件资源归属和管控。


文件系统

Harmony OS 文件系统采用的是目前业界比较通用的实现方式。



更多鸿蒙 OS 开发者文档,详见:


https://gitee.com/openharmony/docs


2020-09-15 14:3424398
用户头像
蔡芳芳 InfoQ 总编辑

发布了 813 篇内容, 共 589.5 次阅读, 收获喜欢 2806 次。

关注

评论 2 条评论

发布
用户头像
图片质量差
2020-09-16 12:51
回复
现场用手机拍的,尽力了……
2020-09-16 17:20
回复
没有更多了
发现更多内容

Sentieon 项目文章 | 长读长基因组测序在神经发育障碍分子诊断中的应用

INSVAST

长读长测序 Sentieon 精准医疗 分子诊断 神经发育障碍

AI口语练习APP的运营

北京木奇移动技术有限公司

软件外包公司 AI口语练习

F5深化与Red Hat战略合作 ,赋能企业AI规模化安全部署

科技热闻

立即体验|效果好、低延迟,Trae 已支持 Doubao-1.5-thinking-pro 新模型

火山引擎开发者社区

豆包 Trae

线上Java服务总崩溃?用JProfiler提前发现性能隐患!

Rose

从System 1到System 2:AI推理能力演化的范式分析

申公豹

人工智能「

荣誉|奇点云入选2025年度浙商“AI+”TOP100

奇点云

AI

2026第十四届中国电子信息博览会

AIOTE智博会

电子展 深圳电子展 电子信息展 电博会

得物研发自测 & 前端自动化测试体系建设

得物技术

自动化

AI口语练习APP的技术难点

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

天润融通“业务专家+AI员工”模式,重塑企业组织形态

天润融通

Project Office X Pro:让复杂项目规划变得像拖拽一样简单

Rose

Lighthouse 评估与调试能力全面升级!

塞讯科技

运维 可观测性 LLM可观测

Macs Fan Control Pro:精准掌控风扇,告别过热降频!

Rose

我们又来啦 又又上架了一个鸿蒙项目-萤火故事屋

万少

鸿蒙 HarmonyOS HarmonyOS NEXT

Wolfram Mathematica:从微积分到AI,一个工具搞定所有数学问题

Rose

Harmony OS Next手势组合全攻略!三种模式玩转交互设计

Turing_010

2025 社交电商必看!带商城的论坛圈子源码,藏着「用户边聊边买」的 5 层变现架构

DUOKE七七

MySQL uniapp thinkphp

SVN管理工具Cornerstone入门教程

Rose

签约快讯|天润融通签约开迈斯

天润融通

MacCleaner Pro:一键清理,让你的Mac快如新机!

Rose

APMPlus × veFaaS 一键开启函数服务性能监控,让函数运行全程可观测

火山引擎开发者社区

火山引擎

等保一体机

等保测评

2025Java面试八股②(含121道面试题和答案)

王中阳Go

Java 面试题

医学AI人才培养,上交医学院的两条路径!清华领衔发布AI白皮书

ModelWhale

清华大学 上交医学院 医学AI

赛博威产品创新协同平台:全面赋能企业创新流程,打造卓越产品力

赛博威科技

人工智能 产品创新 赛博威 产品创新协同平台

鸢尾花数据多维分布探索与可视化实践|AI 编程社知识库精选

火山引擎开发者社区

AI

清华大学超百门课程已实现AI赋能教学,指导发布AI通识教育白皮书

ModelWhale

白皮书 清华大学 AI通识教育 AI赋能教学

云服务器

等保测评

TickIt:基于 LLM 的自动化 Oncall 升级

火山引擎开发者社区

软件工程 TickIt

数字先锋 | 异地“同上一堂课”,天翼云助力巴蜀云校线上教学提质增效!

天翼云开发者社区

天翼云 数字教育平台

华为鸿蒙OS轻量内核设计理念与关键特性_开源_蔡芳芳_InfoQ精选文章