0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为大家揭秘HarmonyOS的内核层

电子发烧友开源社区 来源:HarmonyOS开发者 作者:jikecheng,miaoxie 2021-11-06 09:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

HarmonyOS整体框架分为四个层级,如图1所示。从上到下,依次为:第一层是应用层,主要涵盖系统应用、Launcher、设置,以及三方应用。第二层是框架层,提供基础UI框架、用户程序框架以及能力模块框架。第三层是系统服务层,让HarmonyOS具有分布式流转负载的能力。大家看到的高速多设备协同能力就是由该层级提供。而承载整个操作系统,同时发挥芯片算力的基石就沉淀在第四层——内核层。宏观来说,内核的主要工作包含芯片资源管理、软件任务调度,以及衔接用户空间与系统调用能力。

68396112-3e41-11ec-82a9-dac502259ad0.png

图1 HarmonyOS整体框架

本期,我们要重点给大家讲一讲HarmonyOS的内核层。

一、HarmonyOS内核构成

为了支撑HarmonyOS在多设备、多场景下的性能表现,内核主要由三部分组成,如下图所示:

6869456c-3e41-11ec-82a9-dac502259ad0.png

图2 内核的组成

HarmonyOS内核组件:具有智慧化资源管理能力的内核组件,包括CPU/GPU资源管理,内存管理,IO调度管理以及高效的文件系统等。

标准的Linux内核:兼容了LTS Linux主线版本,做好外围生态的对接。

硬件平台BSP:面向各种不同芯片与硬件平台(包含1+8+N的多种设备)的BSP(board support package,板级支撑包)基础能力。

本期要为大家介绍的就是HarmonyOS内核组件的三项核心技术:高能效CPU资源调度、Hyperhold内存管理引擎和高效的文件系统。下面为大家一一揭晓~

二、高能效CPU资源调度

业界多数的操作系统都是基于标准的Linux内核开发的。传统的Linux内核,早期用于服务器和PC设备,与我们现在用于手机、平板等的交互式内核相比,它们的设计理念和资源管理方式有所不同。以CPU资源为例,传统的Linux内核存在以下典型问题:

1. 同优先级的业务过多,每次调度都不一定选择到关键进程。

传统的Linux内核偏向于在多用户的场景下公平地分配资源。比较明显的特征是,多个用户并发访问,并发使用公共资源。由于同优先级的业务比较多,每次任务调度不一定能够选择到关键进程。举个例子,当设备后台存在多个应用或者服务任务时,系统中和用户交互最敏感的渲染任务没法即时得到调度资源,导致设备会高概率出现使用不流畅或者点击无响应的现象,也就是咱们平时常说的随机卡顿。

2. 选择最优能效的CPU资源时间过长,CPU资源选择过度。

传统的Linux内核选择算力的流程,是一个慢速爬坡的过程。任务调度必须经过选择CPU核簇、负载均衡、选择频点等一系列流程。其漫长的过程,极易导致任务调度错过调度窗口,出现算力供给不足的现象。

为了解决以上问题,HarmonyOS内核提供了全栈式的调度框架,如下图所示:

68b766e8-3e41-11ec-82a9-dac502259ad0.png

图3 HarmonyOS调度管理框架

HarmonyOS调度管理框架有以下特点:

任务按优先级调度

对现有系统任务进行严格级别划分,在线标记与用户的操作体验直接相关的关键进程和关联任务,优先调度关键任务。

依据CPU负载情况选择最优任务分配

我们会动态检测不同CPU的负载,保证当前CPU有足够的算力提供。

选择最优频点实现高能效

我们提供了频点与性能、功耗之间的帕累托最优模型。每次任务,我们都能够快速选择系统最优的频点组合方式,实现最优能效。

经过试验,HarmonyOS的全栈式调度框架可以帮助用户获得在多场景(尤其是游戏场景)下持续且稳定的高帧率体验。

三、Hyperhold内存管理引擎

对于内存管理,由于开源生态的不限制,导致应用开发的内存使用野蛮生长。设备长时间使用后,可回收内存越来越低。产生这个问题的原因有两个:

1. 传统内存数据冷热管理,无法感知业务特性

尽管Linux内核提供了很多的内存回收机制,然而每种内存回收都会有相应的系统代价。比如,回收文件页面后,如果系统需要二次加载这部分数据,需要从底层器件Flash里面把数据读回来,这会引起Flash随机IO读的现象。对IO操作来说,Flash器件速度和当前读取任务是随机读还是顺序读有着很强的相关性,随机读容易导致系统随机卡顿。再比如,回收匿名页面后,如果系统需要二次加载这部分数据,会触发ZRAM解压,消耗CPU。

另外,由于应用的内存负载越来越重,当系统冷热数据识别不恰当,会导致系统的CPU负载长期处于高负载状态,最终影响前台应用的基础性能。

2. 传统共享式内存分配,无法感知数据重要性

从内存分配角度看,现在的操作系统基本采用统一接口的分配方式,使得手机里面多个进程或多个业务会共用一块内存区域。数据回收时,会频繁出现数据搬移,以及内存震荡的现象。这个现象会加重内核管理内存的开销。

为了解决传统Linux内核的内存问题,HarmonyOS提供了Hyperhold内存管理引擎。Hyperhold内存管理引擎打通了上层系统到内核的调用栈,让内核完整感知到应用的整个生命周期,并结合应用生命周期以及周期内的数据访问特征,对每一块内存数据做合理的内存管理。同时,为了降低内核管理内存的开销,我们提出了自研的压缩体系,包括多线程压缩、自研的压缩算法。为了进一步扩大可用空间,我们在Flash器件上开出了一块可交换区,结合自研的聚合换出和内存标记技术,充分利用Flash器件的性能。

经过试验, Hyperhold内存管理引擎可以让应用在后台的驻留能力提升50%以上,用户可以明显感知到后台应用的保活率有大幅提升。

四、高效的文件系统

存储处于整个缓存体系下的最慢路径,容易成为系统性能瓶颈。不仅如此,由于存储器件碎片化的问题,存储还容易出现越用越慢的难题。其次,随着系统的发展,系统占用存储越来越多。而在多设备流转的场景下,分布式文件系统的高效转存能力显得尤为重要。为应对上述问题,HarmonyOS提供了高效的自研文件系统体系。从第一代的eF2FS到最新的HMDFS,文件系统逐步解决了碎片化问题、容量问题与多设备流转问题。

下面我们从第一代的eF2FS到最新的HMDFS,依次介绍HarmonyOS文件系统的技术特点。

1. 第1代数据盘eF2FS:智能感知空间管理,改善越用越慢

面对存储越用越慢的业界难题,我们通过数据类型感知的多流算法和空间感知的分配算法,减少碎片产生。同时,通过高效、业务感知的两层智能垃圾空间回收,实现智能感知空间管理。

2. 系统盘EROFS:变长压缩,支持压缩与性能双赢

针对系统占用存储越来越多的问题,业界其他操作系统也采取过改进措施,比如squashfs采用“定长输入,变长输出”的压缩策略,但会存在读放大的问题。而我们的EROFS(Extendable Read-Only File System,超级文件系统)采用“变长输入,定长输出”的压缩策略,尽可能地将不等长的文件块压缩成一个等长的存储块进行存储。这样,我们访问任何文件块,只需读取一个存储块,减少了无效读取。除此之外,我们在解压性能和IO流程上也做了优化。

通过以上关键技术,系统盘EROFS的性能得到大幅提升:

随机读性能平均提升20%。

系统初始空间相比Ext4节省2GB,相当于用户可以多存1000张照片或500首歌曲。

升级包大小下降约5%-10%,升级时间缩短约20%。

3. 跨设备HMDFS:“批流”结合的分布式文件系统

HarmonyOS同一套系统能力、适配多种终端形态的分布式理念,就要求我们有一套数据流转的底座——分布式文件系统HMDFS。

应对多设备流转,HMDFS提供了多种文件系统能力,包括:

文件类型聚合

高效的缓存管理

批处理接口

分布式的权限管控

高效传输

数据一致性管理

通过上述一系列技术的研发与集成,最终实现了现有的跨设备高效文件系统,为用户提供流畅的分布式体验。

五、未来演进方向

上面就是我们本期要介绍的HarmonyOS内核核心技术内容了。未来还有很多方向值得我们继续探索,下图列出了HarmonyOS内核的未来演进方向。

6a6e91a0-3e41-11ec-82a9-dac502259ad0.png

图8 未来演进方向

相信经过我们不断的探索,我们能打造出更好的内核,为大家提供更流畅、体验更好的HarmonyOS!

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7437

    浏览量

    129621
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    70122
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36294

原文标题:HDC2021技术分论坛:HarmonyOS内核技术大揭秘!

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业级设计揭秘:迅RK3576如何保证-40℃到85℃稳定运行?

    工业级设计揭秘:迅RK3576如何保证-40℃到85℃稳定运行?
    的头像 发表于 02-28 15:56 231次阅读
    工业级设计<b class='flag-5'>揭秘</b>:迅<b class='flag-5'>为</b>RK3576如何保证-40℃到85℃稳定运行?

    钉钉正式开源HarmonyOS图片编辑组件

    近日,由钉钉团队自主研发的“HarmonyOS图片编辑组件”正式上线OpenHarmony三方库中心仓并开源。作为一款填补鸿蒙社区图像处理领域空白的重量级组件,该方案基于HarmonyOS
    的头像 发表于 01-05 09:58 675次阅读

    内核到生态:一次看懂HarmonyOS 6如何重写操作系统的“基础代码”

    “基础代码”的重写,它以五大核心架构基石,构建了一个面向万物互联时代、兼具极致性能、主动安全与原生智能的新一代系统底座。 鸿蒙内核与方舟引擎:性能之基,流畅之源 “方舟引擎让软、硬、生态高效协同,实现1+1+1>3的效果。”它精准概括
    的头像 发表于 12-31 09:09 359次阅读
    从<b class='flag-5'>内核</b>到生态:一次看懂<b class='flag-5'>HarmonyOS</b> 6如何重写操作系统的“基础代码”

    2025 HarmonyOS Connect伙伴峰会暨软通动力分论坛圆满落幕

    9月26日,HarmonyOS Connect伙伴峰会在深圳盛大召开,汇聚行业先锋,共探鸿蒙智联产品生态发展新路径。软通动力作为HarmonyOS Connect核心供应商受邀参会,并成功举办
    的头像 发表于 09-29 15:35 1080次阅读

    第三届大会回顾第6期 | HarmonyOS NEXT原生智能,助力应用低成本生而智能

    原生智能是HarmonyOS NEXT的核心能力之一,通过将人工智能(AI)技术与操作系统深度融合,实现了从底层到应用的全面智能化。HarmonyOS NEXT的原生智能是如何实现的?对开
    的头像 发表于 07-14 18:04 1326次阅读
    第三届大会回顾第6期 | <b class='flag-5'>HarmonyOS</b> NEXT原生智能,助力应用低成本生而智能

    HarmonyOS 5】鸿蒙中进度条的使用详解

    HarmonyOS 5】鸿蒙中进度条的使用详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、HarmonyOS中Progress进度条的类型
    的头像 发表于 07-11 18:26 1285次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】鸿蒙中进度条的使用详解

    HarmonyOS 5】鸿蒙星闪NearLink详解

    HarmonyOS 5】鸿蒙星闪NearLink详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 鸿蒙星闪NearLink Kit
    的头像 发表于 07-11 18:24 2055次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】鸿蒙星闪NearLink详解

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言:移动开发声明式 UI
    的头像 发表于 07-07 11:57 1195次阅读
    【 <b class='flag-5'>HarmonyOS</b> 5 入门系列 】鸿蒙<b class='flag-5'>HarmonyOS</b>示例项目讲解

    HarmonyOS next】ArkUI-X休闲益智记忆翻牌【进阶】

    本文通过记忆翻牌游戏实现,揭秘网络图片在HarmonyOS与iOS设备上的渲染差异,并提供专业级优化方案。基于ArkUI-X的Web组件技术,我们实现了一套代码双端运行的混合架构。 一、跨平台
    发表于 06-28 22:12

    HarmonyOS入门指南

    1、文档与教程 HarmonyOS开发文档-应用开发导读 OpenHarmony--应用开发导读 仓颉编程语言官网 华为开发者博客 华为开发者问答专区 华为生态市场-鸿蒙生态市场
    的头像 发表于 06-27 00:11 923次阅读

    中软国际正式启动鸿蒙软件工场

    自2024年HarmonyOS NEXT版本起,HarmonyOS应用框架更新鸿蒙“单框架”,正式告别了对Android应用框架、内核
    的头像 发表于 06-17 15:44 1133次阅读

    比亚迪 · 超级e平台 · 技术方案的全面揭秘 | 第三曲: 30000转驱动电机 · 12项核心技术揭秘

    比亚迪 · 超级e平台 · 技术方案的全面揭秘 | 第三曲: 30000转驱动电机 · 12项核心技术揭秘
    的头像 发表于 06-08 07:20 2574次阅读
    比亚迪 · 超级e平台 · 技术方案的全面<b class='flag-5'>揭秘</b> | 第三曲: 30000转驱动电机 · 12项核心技术<b class='flag-5'>揭秘</b>

    华为推出首款搭载HarmonyOS 5的鸿蒙电脑

    。作为首个从操作系统内核层面重构的国产电脑,华为此次发布的鸿蒙电脑已顺利通过开源鸿蒙兼容性测评,开机画面显示“Powered by OpenHarmony”标识。鸿蒙电脑的发布标志着开源鸿蒙在消费领域取得了新的突破,也“万物互联”的开源鸿蒙生态补全了关键一块拼图。
    的头像 发表于 05-26 09:28 2221次阅读

    康谋洞察 | L3+智能座舱时代,主机厂三大核心需求揭秘

    舱内感知模型遇数据瓶颈?真实采集成本高、隐私限制严、长尾场景稀缺!行业正转向合成数据破局,但仍面临诸多困难。本文大家详细揭秘析主机厂和算法供应商的三大需求核心,加速破局!
    的头像 发表于 05-21 09:55 3267次阅读
    康谋洞察 | L3+智能座舱时代,主机厂三大核心需求<b class='flag-5'>揭秘</b>!

    第三届大会回顾第2期 | HarmonyOS NEXT内核驱动生态兼容与竞争力思考

    随着HarmonyOS NEXT生态和技术的发展,驱动框架作为北向和南向的生态中枢,有很多的机会。例如,提供更多的信息到应用,实现精准的性能功耗控制;打破传统的分层解耦,简化关键协议、关键路径等等。
    的头像 发表于 05-19 19:17 1983次阅读
    第三届大会回顾第2期 | <b class='flag-5'>HarmonyOS</b> NEXT<b class='flag-5'>内核</b>驱动生态兼容与竞争力思考