鸿蒙操作系统内核简介

早在去年,华为发布了荣耀智慧屏,首次搭载了自研的“鸿蒙”操作系统,从此以后,网络上面充斥着各种对“鸿蒙”操作系统的话题,这些话题中,有些是脱离实际现实的狂吹乱造,简直把“鸿蒙”操作系统鼓吹上天,三年内赶超安卓,称霸手机界。有些言论则是对其充满着质疑,觉得它只不过和绝大多数的RTOS一样,仅此水平而已,更有甚者,直接质疑“鸿蒙”操作系统存在的事实性。终于,一年之后的昨天,华为开发者大会上,直接对“鸿蒙”操作系统开源。犹抱琵琶半遮面的“鸿蒙”操作系统终于亮出了它的真面目。此次发布的版本为“HarmonyOS2.0”,其开源版本为:“OpenHarmony”。

现在如果你也对“鸿蒙”操作系统充满好奇,你可以很简单地得到其源码,下载链接为:http://tools.harmonyos.com/mirrors/os/1.0/code-1.0.tar.gz。当然,你也可以直接登录“鸿蒙”操作系统在Gitee上的代码仓库,这里面不仅有“鸿蒙”操作系统源代码,还有着丰富的中英文资料。具体链接为源码下载链接:https://openharmony.gitee.com/openharmony开发文档链接:https://openharmony.gitee.com/openharmony/docs将开发文档下载完成之后,解压后便可以直接用VS Code软件打开这个文档文件夹,接着便可以进入“Readme-CN.md”选择每个文档的入口了。

这里你可以发现,整个技术文档都是中文的,完全可以摆脱看英文资料的那种纠结感,而且文档思路很清晰,可以快速地找到你需要找到的每个内容。接下来的内容将会介绍的HarmonyOS 操作系统架构,本文内容都是基于“鸿蒙”操作系统官方文档的内容来描述的,因为我刚刚拿到源码,没去做深层次的学习,深入的操作系统参数,开发流程和便捷性,操作系统移植,驱动程序等暂时还没有办法得出清晰的结论,等到我可以玩转这个操作系统之后,我们再来出教程进行详细描述。HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。

内核层内核层主要是包含了内核子系统和驱动子系统这两个子系统,其中HarmonyOS的内核不是传统意义上的单内核架构,如安卓或者Linux,从图中可以看出,它是一种可以支持多种内核的机制,这也就是决定了HarmonyOS可以同时支持无MMU的架构和有MMU的架构,这一点从它源码里面的”code-1.0.tar\code-1.0\kernel\liteos_a”和”code-1.0.tar\code-1.0\kernel\liteos_m”可以看出。HarmonyOS的驱动HarmonyOS驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。HDF驱动加载包括按需加载和按序加载两种方式。按需加载HDF框架支持驱动在系统启动过程中默认加载,或者在系统启动之后动态加载。按序加载HDF框架支持驱动在系统启动的过程中按照驱动的优先级进行加载。HDF框架可以集中管理驱动服务,使用者可直接通过HDF框架对外提供的能力接口获取驱动相关的服务。同时HDF框架提供统一的驱动消息机制,支持用户态应用向内核态驱动发送消息,也支持内核态驱动向用户态应用发送消息。关于HDF框架的详细描述和开发流程,可以参考技术参考文档的“driver\HDF开发实例.md”。

系统服务层系统服务层是 HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:系统基本能力子系统集:为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等子系统组成。其中,方舟运行时提供了 C/C++/JS 多语言运行时和基础的系统类库,也为使用方舟编译器静态化的 Java 程序(即应用程序或框架层中使用Java 语言开发的部分)提供运行时。· 基础软件服务子系统集:为 HarmonyOS 提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP&DV 等子系统组成。· 增强软件服务子系统集:为 HarmonyOS 提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统组成。· 硬件服务子系统集:为 HarmonyOS 提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT 专有硬件服务等子系统组成。根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。框架层框架层为 HarmonyOS 的应用程序提供了 Java/C/C++/JS 等多语言的用户程序框架和 Ability 框架,以及各种软硬件服务对外开放的多语言框架 API;同时为采用 HarmonyOS 的设备提供了 C/C++/JS 等多语言的框架 API,不同设备支持的 API 与系统的组件化裁剪程度相关。应用层应用层包括系统应用和第三方非系统应用。HarmonyOS 的应用由一个或多个FA(Feature Ability)或 PA(Particle Ability)组成。其中,FA 有 UI 界面,提供与用户交互的能力;而 PA 无 UI 界面,提供后台运行任务的能力以及统一的数据访问抽象。基于 FA/PA 开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。以上内容就是关于鸿蒙OS内核的简要分析,上述所述全部内容全都来源于华为的《HarmonyOS 入门文档》。HarmonyOS的话题,等我完全理解了这个操作系统之后再来详细讨论。

最后,就我个人来看,HarmonyOS目前来说距离安卓和Linux之类的国外开源项目还有很长的路要走,但是做这件事情的目的,更大的意义在于开源,虽然早之前也有很多优秀的开源项目,但是由大公司发起的操作系统级别的开源项目,HarmonyOS在国内是第一个,它的出现,让更多优秀的程序员可以参与进来,相信要不了多久,中国的开源软件也一定可以站在世界之巅,大家共勉。

(0)

相关推荐