鸿蒙多内核弹性适配机制研究
鸿蒙多内核弹性适配机制研究
摘要
操作系统内核架构直接决定设备的运行能力、安全特性与硬件适配范围。传统操作系统大多绑定单一内核,很难同时覆盖高性能终端、中小型智能设备与低功耗物联网终端。OpenHarmony鸿蒙操作系统提出多内核弹性适配机制,打破一套系统只能搭配一类内核的固有模式。本文结合操作系统课程所学的宏内核、微内核相关理论,分析鸿蒙多内核弹性适配的实现思路、运行逻辑,探究该机制的技术优势与现存局限,同时分析该技术在国产智能设备领域的实践价值。
一、引言
在传统操作系统设计中,一套操作系统往往固定搭配一种内核架构。例如Linux属于宏内核,整体性能出色,但内核体积大,并不适合内存资源十分有限的小型物联网硬件;传统微内核安全性强,却会在高性能设备场景下存在通信开销问题。现实生活中,智能设备算力差距极大,手机、车机、智能手表、家电传感器,硬件内存、处理能力天差地别。如果为每一类硬件单独开发一套操作系统,开发成本高,生态难以统一。
鸿蒙的多内核弹性适配机制,就是为了解决这一矛盾。它在同一个系统框架之下,支持接入不同类型内核,根据硬件本身的资源情况,自动或者人为选择适配最合适的内核,在保留统一上层应用生态的前提下适配全场景设备。
二、相关内核理论基础
按照课本对操作系统内核架构的划分,宏内核将进程调度、内存管理、文件系统、设备驱动全部运行在内核态,模块之间调用直接,执行效率高,但是一旦某个模块出现缺陷,会造成整个系统崩溃。微内核仅在内核态保留进程通信、基础调度等核心功能,其余功能拆解为独立服务运行于用户态,故障隔离能力强,安全性更高,但服务之间依靠消息传递完成交互,会带来一定的性能损耗。
除此之外还有外内核、多内核架构。多内核架构允许系统同时兼容、调度多个不同内核,不同内核各司其职,协同完成操作系统的整体工作,这也是鸿蒙弹性适配机制的理论来源。多内核架构并不是简单把多个内核堆砌在一起,而是搭建统一的中间框架,屏蔽底层内核差异,向上层提供一致调用接口。
三、鸿蒙多内核弹性适配的实现机制
3.1 可切换的三类内核选型
OpenHarmony没有强制绑定自研微内核,它支持三类内核作为底层基座。
对于算力较强的高端设备,例如高端手机、智能车机,可以选用鸿蒙自研微内核。微内核的故障隔离特性可以保障设备运行稳定性,单个驱动或者服务发生异常,不会造成整机宕机,对车机这种高可靠性要求的设备十分重要。
对于内存中等,追求软件兼容性的设备,可以搭载Linux宏内核。利用Linux成熟的驱动生态,兼容大量现有硬件,降低设备厂商的开发难度。
针对内存极小的物联网终端,比如智能传感器、小家电,系统可以选用LiteOS轻量内核。该内核体积精简,占用内存极少,可以在资源十分有限的硬件上完成基础调度、外设控制工作。
这三类内核分别对应微内核、宏内核、轻量化专用内核,鸿蒙上层应用不需要关心底层到底运行哪一种内核。
3.2 统一内核抽象层的核心作用
能够实现多内核弹性切换,最关键的部件是内核抽象层。内核抽象层处在上层系统框架和底层不同内核中间,起到隔离和解耦的作用。
不同内核提供的系统调用、接口函数本身并不一样。Linux的系统调用接口、自研微内核接口、LiteOS接口互相不兼容。内核抽象层对底层各类内核的接口做封装,把不同内核的能力,转化成一套统一的接口提供给上层。
上层的组件、应用程序只调用这套标准化接口,不会直接和底层内核打交道。更换底层内核的时候,只需要内核抽象层完成适配,上层软件几乎不需要修改代码。正是依靠这一层中间封装,才做到“一套上层代码,多种底层内核自由选配”。
3.3 设备编译阶段完成内核选配
鸿蒙的多内核,并不是设备运行的时候随意切换内核,而是在编译固件阶段,根据目标设备硬件规格,选定其中一种内核进行构建。
设备厂商根据产品内存、算力、安全需求,确定产品使用哪一类内核,编译时将对应内核、内核抽象层、系统框架打包为固件烧录硬件。设备运行期间,使用选定的内核完成全部调度工作。同一套OpenHarmony源码,编译配置不同,就可以产出分别基于微内核、Linux、LiteOS的不同固件,实现弹性适配。
四、鸿蒙多内核弹性适配机制的优势
第一,实现全场景硬件覆盖。依靠多内核弹性机制,同一套OpenHarmony源码可以覆盖从内存只有几十KB的传感器,到算力强大的车载主机。不需要针对每一类设备重新设计操作系统主体,极大降低国产智能设备的开发周期与研发成本。
第二,兼顾安全、性能、轻量化不同需求。设备厂商可以按需取舍。车机设备优先选择自研微内核,看重故障隔离带来的安全性;普通平板设备选用Linux内核,看重生态兼容;小型传感器选用LiteOS,看重资源占用小。不再被迫接受单一内核的优缺点。
第三,维护统一的应用生态。底层内核虽然不一样,但经过内核抽象层的封装,向上提供一致的API。开发出来的应用,不需要大幅度修改,就可以运行在搭载不同内核的鸿蒙设备上,有利于构建统一的国产操作系统生态。
五、现存局限与问题
多内核弹性适配也存在现实的短板。
首先,内核抽象层增加系统的复杂度。抽象层作为中间转换层,会带来少量额外开销。同时要维护三套内核的适配工作,框架本身的代码维护工作量会上升,适配出现漏洞就会引发兼容性问题。
其次,不同内核能力存在天然差距。部分高级系统能力,只在自研微内核上面完整实现,运行在Linux、LiteOS之上时,部分特性会受到限制。即便有抽象层做封装,不同内核之间能力差异无法完全消除,部分业务开发仍需要区分底层内核做兼容处理。
另外,多内核模式对于开发者提出更高门槛。开发者不仅要熟悉鸿蒙上层开发框架,还需要了解底层不同内核之间差异,增加学习成本。
六、总结与展望
鸿蒙多内核弹性适配机制,是多内核架构理论在国产操作系统当中的一次落地实践。它没有强行用单一内核去适配全部硬件,而是借助内核抽象层,做到底层内核可选择,上层框架统一。既发挥微内核、宏内核、轻量内核各自的长处,又维持统一应用生态,很好匹配全场景物联网时代的硬件特点。
当然该机制依旧存在复杂度提升、内核能力不一致等现实问题。后续随着OpenHarmony迭代,进一步完善内核抽象层,缩小不同内核之间能力差距,可以进一步释放多内核弹性适配的价值,为国产信创智能设备提供更加灵活可靠的操作系统底座。
参考文献
[1] 操作系统教材.麒麟操作系统应用活页式教程
[2] OpenHarmony官方开发文档

浙公网安备 33010602011771号