目录

一文讲明白鸿蒙的工作原理

目录

一文讲明白鸿蒙的工作原理

了解鸿蒙系统之前,我们应该了解一下操作系统的演进以及向关概念,以此来对比鸿蒙有哪些技术特性以帮助自己更好的了解鸿蒙操作系统。

操作系统

操作系统这个词语对于一般的人来说立刻浮现在脑海的就是windows操作系统,但其实操作系统的种类还有很多,例如工业界使用最多的linux操作系统,以及单片机领域使用的RTOS实时操作系统。。。等等,他们处于不同的领域,使用的平台也有很大的差异,但是它们都属于操作系统,都负责管理我们的硬件资源。

操作系统是产品设计制造者设计给产品使用者操作产品的接口,就以下图所示的汽车为例来说吧

https://i-blog.csdnimg.cn/direct/68ad581dc7e146418e6145a2d69609d2.png#pic_center

从之前的手扶式拖拉机到方向盘式汽车最后新概念式的全自动驾驶汽车,我们可以很容易的看出随着时代的发展,汽车的操作方式也发生了很大的变化,使我们的操作变得更加方便。从本质来讲它们都属于同一类是设备,他们都给我们预留了对它进行操作的接口,但是由于不同的产品对系统的实现方式不同,所以达到了不同的使用效果。

**操作系统会屏蔽和保护产品内部实现细节,给外部统一接口,**从上面的例子可以看出对于不同的产品,有些我们已经很难看出他具体的控制方式,具体的原理、细节已经对我们进行了屏蔽,只是预留了我们操作的接口。作为使用者,我们只需要去学习如何操作,不惜要过多的关注内部的实现细节。讲到这里,我觉得这点更像我们高级语言中的一些函数库。只要知道函数能实现什么样的功能,不必关心是如何实现的,这样就大大加快了项目开发的进度,提升了使用体验。

**随时代变迁,操作系统的接口也会发生变化,**从手扶拖拉机到全自动驾驶汽车,我们操作方式产生的很大的区别,但是产品的功能却没有很大的改变,这是由于技术的提升,我们可以以更加符合人性化的操作方式来与人进行交互,系统是要紧跟时代的,这也正是大家对鸿蒙操作系统寄予厚望的原因之一,因为它瞄准的是下一个时代,万物互联的时代。

随着时代的变迁,操作系统的难点和竞争点也会发生变化。

软件行业的操作系统是干嘛的

以上仅仅是在普适行业的操作系统,在我们接触最多的软件行业,操作系统有更加具体的描述。

软件操作系统是硬件厂商给纯软件厂商提供的操作系统的接口, 这是由于时代的发展,各个产业精细化分工的结果,硬件厂商负责硬件以及操作系统,提供给软件厂商一些调用硬件的接口,他们各自负责自己的事物,并进行创新。会产生更多有趣的应用。但是在早期,以手机为例,软硬件式一体开发的,就没有操作系统的概念,或者来说我们并不关心我们使用的手机使用的什么样的操作系统,因为产品是由手机厂商一体化开发的,并没有给我们开发者提供二次开发的接口,我们是直接去使用,所以了解他用的什么操作系统对我们 并没有什么帮助。但是随着时代的发展,计算机硬件资源(算力、内存、IO等)能力的提升,计算机系统也变得非常庞大,整个产品开发变为了硬件开发、系统及软件开发、应用级开发三大模块。而系统级软件就是我们常讲的操作系统,他是硬件与应用软件相连接的重要组成部分。操作系统将整个硬件资源标准化封装,给外部应用级别的软件调用。

操作系统是怎么产生的

最初是没有操作系统的概念的,例如大家都知道的8位机(51单片机)时代,计算机硬件资源较少,能够做出的产品的功能也较单一,我们是直接裸机编程就能实现自己的功能,这样开发所有的代码都要程序员自己编写,开发难度大,周期长,但是很多代码都是前辈们编写过的,会有很多重复劳动。我们知道现在工程师在工作中大部分代码都是不需要自己写的,这其中就牵涉到一个很重要的概念——代码复用,代码复用解决了重复造轮子,为了实现代码复用,逐渐发展出了各种函数库。又为了更容易实现多任务编程就又出现了RTOS,现在这些我们的以STM32为代表的单片机中还经常被使用,有进一步为了实现多用户动态装载应用出现的标准操作系统,最为代表的就是Android 和 iOS 操作系统。

我们为什么需要操作系统

了解了以上那么多,其实大家应该都大概已经知道了我们为什么需要操作系统了。接下来说明一下操作系统在不同领域带给我们的价值。

技术上,这也是我们工程师最需要关心的问题,**操作系统能够降低我们开发的难度,屏蔽无关紧要的细节,**降低开发难度,这听起来就让人兴奋,作为应用及开发者,如果没有操作系统,我们就需要去了解硬件,进行编写硬件驱动等等一系列枯燥并且难度很大的工作,但是现在我们可以很轻松的通过操作系统提供给我们的接口,轻松的调用传感器,摄像头等等一系列设备。专注于自己应用级的开发。简化了工作又降低了工程师的门槛。代码复用,减少劳动。功能模块化,这些想必大家都能理解。操作系统还有一个优点就是高内聚,低耦合,做过开发的都知道,高内聚,低耦合一直是我们追求的目标,模块仅负责自己的功能,降低模块之间的联系,这样会降低很多开发上的麻烦。

商业上,商业上的好处根本还是技术上带来的,模块化分工便于业务分离,形成上下游不同的厂商,现在的产业链是全球分工,每个厂商专注于自己负责的部分,提高了效率,同时也激活了产品和业务模式的创新,例如阿里和腾讯。都是软件公司,不涉及硬件部分,只负责软件,并且是应用级别的开发,诞生了支付宝和微信这样成功的应用。

鸿蒙系统(HarmonyOS)是华为自主研发的一款面向全场景的分布式操作系统。其底层逻辑主要包括以下几个方面

分布式架构:鸿蒙系统采用了分布式架构设计,可以将不同的设备和服务进行高效整合。通过分布式技术,鸿蒙系统可以实现跨平台的功能,使得应用在不同的设备上能够获得一致的体验。分布式架构是一种将多个独立的计算机系统或设备通过网络连接起来,共同协作完成任务的架构模式。在鸿蒙系统中,分布式架构主要体现在以下几个方面:

(1)分布式应用:通过鸿蒙系统的分布式技术,开发者可以轻松地编写跨平台应用,使得应用在不同的设备上具有良好的兼容性和一致性。

(2)分布式数据管理:鸿蒙系统提供了分布式数据管理功能,使得数据可以在多个设备之间实时同步和共享,提高数据处理效率。

(3)分布式能力调度:鸿蒙系统能够根据设备的性能和资源情况,智能地调度和管理分布式任务,实现负载均衡和资源优化。

(4)虚拟外设:鸿蒙系统通过虚拟外设技术,可以将不同设备的硬件能力虚拟化为统一的接口,方便开发者调用和整合。

在代码层面,鸿蒙系统采用了分布式技术框架,如分布式任务调度、分布式数据同步等。这些框架通过底层的网络通信技术和分布式事务管理,实现了设备之间的协同工作。

微内核设计:鸿蒙系统采用了微内核设计,将操作系统内核进行拆分,仅保留最基本的内核功能,如进程管理、内存管理等。这种设计可以提高操作系统的安全性和稳定性,同时便于后续功能的扩展和更新。

微内核是一种精简的内核设计,只包含最基本的操作系统功能,如进程管理、内存管理等。鸿蒙系统的微内核设计有助于提高系统的安全性和稳定性,同时便于后续功能的扩展和更新。

鸿蒙微内核的主要特点如下:

(1)最小权限原则:微内核只具备必要的权限,避免因内核功能过于庞大而导致的潜在安全风险。

(2)模块化设计:微内核将操作系统功能拆分成多个模块,便于维护和升级。

(3)抢占式调度:微内核采用了抢占式调度策略,确保系统资源的高效利用。

在代码层面,鸿蒙微内核主要包括内核态和用户态两部分。内核态负责管理进程、内存、中断等底层资源;用户态提供了一系列操作系统服务,如文件系统、网络协议栈等。两者之间通过鸿蒙系统提供的抽象接口进行通信,保证了微内核的高效运行。

鸿蒙系统的生态模式

生态是我们最近两年美国制裁华为以来经常听到的词,也是我们对鸿蒙可以成功持有怀疑态度的重要依据。android和IOS的不可撼动依赖于他们强大的生态,以华为的实力推出一个媲美android的操作系统并不让人感到吃惊,但是对华为来说难的是建立自己的应用生态。但是生态都包括什么呢,我们并不清楚,我们就先来看一下什么是生态吧。

生态就是上下游厂商共建的体系 ,全球分工,一个产业,一条产业链,上下游厂商共同建立起了一套生态系统,软件应用开发者负责开发app,操作系统厂商负责维护开发操作系统 ,硬件厂商负责制作硬件,使之符合操作系统的运行要求。以及广大的用户群体,这些都是生态的组成部分。这样的分工有利于资源互补,专业分配, 各个厂商负责自己做的事情,发挥自己的优势,激发自己的创新**。鸿蒙想要获得像Android、iOS、ARM生态那样的成功必须要有优秀的生态设计,才能吸引众多的开发者来为鸿蒙注入新的血液。**

鸿蒙不是华为的而是中国的

鸿蒙是华为的,这是我们大多数人的印象,这是不对的。我们可以说华为与鸿蒙有着非常紧密的联系,华为是鸿蒙的创建者,但在发布会上华为已经宣布将鸿蒙贡献给鸿蒙基金会(第三方开源组织),华为是基金会的重要成员,所以说华为是鸿蒙的贡献者,创建者,但鸿蒙是属于中国的,是属于广大的开发者的,只要有能力我们都可以为鸿蒙贡献代码,成为鸿蒙贡献者的一员。

鸿蒙生态有众多参与者,关于鸿蒙生态的参与者我们可以简单的分为这几部分。

https://i-blog.csdnimg.cn/direct/144f390af3e9419ea530fb2f50bb26f1.png#pic_center