花粉乐分享平台宣传视频
> 华为资讯 > 华为资讯 > 鸿蒙编程 > 还不知道鸿蒙OS底层实现?老司机带你走进微内核
还不知道鸿蒙OS底层实现?老司机带你走进微内核
来源:51CTO
2023-01-03 10:37:13
598
管理

图1 鸿蒙OS技术架构

如图1所示,我们可以看到鸿蒙OS的整体架构,而本文我们需要聚焦内核层的架构体系。内核层由内核子系统和驱动子系统组成。

内核子系统:鸿蒙OS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(Kernel AbstractLayer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

驱动子系统:硬件驱动框架(HDF)是鸿蒙OS硬件生态开放的基础,提供统一的外设访问能力、驱动开发及管理框架。

而在内核子系统中包含了LiteOS的内核就是今天的主角,也就是我们要提到的微内核,为什么鸿蒙OS在具备Linux Kernel的情况下还要引入LiteOS的微内核技术作为补充呢?接下来就让我们一起走进微内核的世界。

2.宏内核与微内核

在描述微内核之前,要了解什么是内核。大家都知道计算机是由诸多硬件组成的,包括:CPU、内存、磁盘、网卡、显示器、键盘、鼠标等等。为了能够管理和组织这些硬件资源,我们创造操作系统,而内核就是操作系统中的核心部分。

就好像我们常用的Windows操作系统,Unix以及Linux操作系统,它们都存在内核。

而目前市面上、绝大多数操作系统都是宏内核,其典型代表就是Linux。

宏内核中的“宏”字表现为,将内核服务作为整体,所有服务都“伸手即得”。也就是将控制计算机的各个模块,都聚合在内核中方便管理。如下图2所示,CPU调度、文件系统、内存管理、应用管理调度、中断处理、设备驱动都放在内核中。如果应用程序需要申请内存,内核直接使用“内存管理”给应用分配内存,使用“应用管理进程调度”给应用分配进程,没有额外的消耗。

图 5 信号量运作示意图

上面提到了信号量的使用方式,由于它是对资源使用量的计数器,因此以下两个场景经常会出现信号量的身影。

任务互斥:当多个任务同时对一个临界资源进行访问时,会对这个资源维护一个信号量,初始值为1,当有任务线程访问时就将这个值减1,此时如果其他任务线程也访问该资源会先检查信号量,如果小于等于0就等待。当之前的任务线程访问完毕,释放资源时会将信号量加1,此时其他任务线程就可以访问该资源了。资源计数:用于生产者与消费者的场景可以通过信号量的递增或者递减来表示资源的状态。5.总结

本文从鸿蒙OS的架构特性入手,发现在内核子系统中使用了LiteOS的微内核架构,从而引出了微内核在鸿蒙架构中扮演的特殊角色。为了解释什么是微内核,先从操作系统内核说起,接着介绍了常见的宏内核将所有服务都集于一身,微内核为了提升灵活性、可扩展性,可靠性和可移植性,将一些非核心的服务从内核中剥离,只留一些核心服务在内核中减少了内核的容量,降低了出错的风险。最后,又回到开始时介绍的LiteOS ,并介绍了它的四大核心模块,包括:任务管理、内存管理、中断管理以及信号管理。

作者介绍

崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。曾任惠普技术专家。乐于分享,撰写了很多热门技术文章,阅读量超过60万。《分布式架构原理与实践》作者。

来源: 51CTO技术栈

花粉社群VIP加油站

3
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
萤火虫不发光..(花粉指导)
文章
528
主题
0
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
3
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索