admin管理员组

文章数量:1630587

前言

o(╥﹏╥)o煎熬一段时间,终于推免上岸了,导师下发的第一个任务需要我去学习一下鸿蒙系统。但苦于网上合我意的资料并不多,(我也没用过华为手机),所以搜着搜着就看到双十一手机选购了。
本文想尽我所能,搜集全网有关harmonyOS的系统讲解,做一个记录,同时也希望能和看到这篇文章的你们讨论。

一、 鸿蒙系统(HarmonyOS)的诞生

2019年8月9日,在东莞举办的HDC(华为开发者大会)上,余总带来了华为的鸿蒙操作系统(harmonyOS),下面的副标题解释到 “基于微内核的全场景分布式OS” ,这或许就是我们入手理解鸿蒙系统的关键。
大会上在公布OS之前,还具体提到了友商的痛点与华为的想法,这些大概都是鸿蒙系统要具体解决的问题。

(1)华为消费者业务未来战略


这里主要解释了一下“1+8+N”的3层结构化产品

(2)什么样的OS才能满足这样的战略

  • 目前同一家企业的不同产品,都有着不同的OS来满足产品的特殊需求,这样在短期内生态产品不多的情况下的工作量是可以估量的。而面向未来,各种互联设备,包括智能家居等各种IOT设备的需求,一个可以适配所有产品的OS仿佛才是正确之选。而华为提出的设想是 “OS与硬件绑定,生态与OS耦合”
  • 其次,余总提出目前Android/linux内核代码过于冗杂,很难保证不同终端互联体验的流畅性。

此处举例,安卓内核大概有1亿行代码,而实际使用过程中接触到的不过8%的代码。这样就需要手机至少有3G以上的内存才能够运行安卓系统,这对于IOT设备的开发要求过于苛刻。(同时段售卖的苹果手机的内存只需要6G,而安卓可能需要8/12G,或许也是因为内核不同?)

  • 同时今天多终端的互联对于设备的安全性也提出了要求。(我认为面对互联越来越广泛,哪怕在网联车的自动驾驶方面的就需要最顶尖的安全性,而安全性决定了未来互联设备开发的上限)
  • 软件生态与硬件绑定的设计,不同硬件设备都需要相应不同软件适配,大大降低了用户的体验和开发的效率。

此处举例:
Google公司:电脑(Chrome OS),手机(Android),手表(Wear OS),物联网(Android Things),采用的是宏内核(?需要解释),架构冗余,体验不稳定,OS与生态割裂,难以适配全场景。
Apple公司:电脑(MacOS),手机(IOS),平板(IpadOS)……采用的是混合内核(?也需要解释),系统逐渐分裂,生态封闭,系统体验仅限于自有产品。

(3)华为的鸿蒙(HarmonyOS)

所以华为要做的OS是“面向未来的OS”,觉得PC的摄像头不够好,可以调用手机摄像头;觉得手表不能拍照,也可以调用手机的拍照功能……通过新的OS,可以实现如下功能:

二、基于微内核的全场景分布式OS

(1)微内核?宏内核?混合内核?

参考文献《一文搞懂宏内核、微内核以及混合内核》——作者:barry
上文提到了在对比中,Google公司采用的内核是宏内核,Apple公司采用的内核的混合内核,而harmonyOS采用的微内核。(真的是传统意义的微内核吗,这里或许跟专业上的定义有些偏差?)
其实这几种内核都是早已有之而且都有所发展的操作系统的内核,每种内核都有其代表作。首先需要具体复习一下什么是内核

内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

内核主要管理着计算机的软件资源(系统软件、应用软件)与硬件资源(CPU、存储器、总线、各种I/O设备)。
而内核一般负责如下功能:

  • 管理CPU,进程管理,决定哪个进程使用cpu,也就是进程调度
  • 管理内存,决定内存的分配与释放
  • 管理硬盘,即管理文件
  • 管理各种I/O 设备
  • 管理网络系统
    ……
    简而言之, 内核决定着系统的性能和稳定性,是连接应用程序和硬件的桥梁。
1.宏内核

宏内核与内核的定义基本重合,负责将上述功能视为模块集成在内核中,而这就要求用户必须在内核态才能管理CPU、内存等,而使用者大部分时间处于用户态中。

比如需要分配内存的时候,应用程序会调用系统的接口,经过系统调用切换到内核态执行相关代码。分配完成后将首地址通过返回值交由程序,此时CPU切换回用户态。

宏内核的经典操作系统就是linux,该种内核结构性能极高,但是缺点就是耦合度高,一旦一个模块出现问题,会影响其余模块的运行。

2.微内核

根据上面宏内核的介绍,微内核或许可以望文生义出来。微内核提倡内核中的功能尽可能的少,只保留核心功能(中断处理,时钟管理等)即可,将内存管理,进程管理等功能视为特殊的用户进程进行实现。

微内核中定义一种进程间通信的机制——消息。当应用程序请求相关服务时,会向微内核发送一条与此服务对应的消息,微内核再把这条消息发送给相关的服务进程(特殊的用户进程),接着服务进程会完成相关的服务。(所以消息管理也是微内核的核心功能)

还是宏内核中的例子,此时应用请求分配内存时会通过微内核发送一个“消息”,此时由用户态切换到内核态,此时会停止运行当前进程,将消息发送到内存管理的服务进程,交由服务进程处理后返回内存,微内核再以消息的形式发回应用程序。

这样做很显然,一方面降低了系统的耦合度,另一方面降低了系统的性能。这种内核比较有代表性的是MACH和MINIX,在苹果的某些系统中可以看到微内核的存在。(所以,harmonyOS真的是纯种的微内核吗?)

3.混合内核

众所周知,生物学存在“杂种优势”,所以在我们学习过程中也总是看到这样的“杂种优势”。混合内核将两个极端进行适当的取舍,比较简单的理解就是将常用的功能放在内核层加快效率,将不常用的或者一段时间才用到一次的功能放到应用层。当然极端的好处就方向明确,而一旦功能混合就导致方向变得模糊。所以在这里的混合内核也有许多不同种类。

比较常用的混合内核,比如:
Windows运用的是NT(new technology)内核,以我理解来说,NT内核在内核层中定义了一个小内核,在小内核上线程管理、内存管理等功能分装成一个个执行体。在内核层来看,这种方法降低了系统功能的耦合度,可以看作是微内核的优势,但是这些执行体也在内核层中,符合宏内核的定义。这样做兼顾了两种内核的优势,是比较有代表性的混合内核。
MacOS使用的是Darwin-XNU内核,以我理解来说,该内核架构在内核层分为MACH(微内核)和BSD(宏内核),MACH内核提供简单的进程线程、驱动方面的服务,BSD内核负责完善网络安全与文件系统,同时也兼顾MACH内核的扩展。

所以我们看回harmonyOS,或许应该先看回Android系统的内核是什么样子的。参考视频《【硬核】何为鸿蒙?和安卓的区别到底是什么?别再扯套壳了》——作者:虽然但是张黑黑

安卓的内核是linux内核,根据上文可以知道是一种宏内核,而这里涉及到手机系统的一些架构问题,比如AOSP等内容。华为在发布会对鸿蒙的期望是,如果安卓不可用的时候才会启用,所以目前来看及时发展到当今harmonyOS4.0,还是需要对安卓应用有一定的适配。


看回harmonyOS的内核,可以看到所谓的微内核就是区别于Android单linux内核而增加的liteOS,而liteOS是华为自主研发的微内核操作系统,这样看起来harmonyOS是一个混合内核的系统,所以网上有人说鸿蒙的微内核不是技术意义上的微内核,而是宣传上的微内核可能就是从这里来的。

4.liteOS


可以简单来说,liteOS的微内核负责的功能更倾向于物联网相关技术的处理,已知的内容是liteOS不仅提供传统嵌入式操作系统的功能,还提供了丰富的中间层组件,可以说是专注于互联方向的一款轻量级操作系统。具体研究o(╥﹏╥)o或许后续会不得不进一步研究这方面内容。

(2)分布式——分布式软总线技术

参考文献《华为鸿蒙OS尖刀武器之分布式软总线技术》
什么是总线?计算机本科生可能并不陌生,“送地址上总线,送数据上总线”,可以说总线是内部CPU,内存,I/O设备传递信息的公用通道,主机各部件通过总线相连,形成了计算机硬件系统。

那什么是分布式软总线?这是华为自研的一项技术,首先“软”就说明可能并不实际存在所谓的“线”,目前通过华为的设备也能清楚感知,比如多屏协作(QAQ我只见过华为这一个功能)不需要通过任何实体的线连接就可以实现低时延的传输。
从我理解来说,这套软总线就是利用了WIFI,蓝牙,NFC等技术,解决各个端口的协议问题(有关协议问题比较熟悉的就是USB和lighting),从而实现各个设备不需要通过“线”而实现线的效果。华为称之为 “设备间无感发现,零等待传输”

软总线解决了:

  • 自发现问题:无需打开蓝牙寻找设备,而是自动发现周边设备进行连接。
  • 异构网络组网:如果一台没有蓝牙的PC想要接受手机通过蓝牙发送的照片,那该如何解决呢?harmonyOS采用了异构网络组网技术,不同设备上线会在网络层注册,网络负责主管设备,检测设备的上下线状态,而上线的设备可以随时与自己感兴趣的设备建立连接。这样对于开发者来说,无需过多考虑协议问题,降低了开发成本。
  • 极简协议:实现低时延的传输,harmonyOS简化了网络传输协议,将中间的四层协议栈精简为一层提升有效载荷,有效传输带宽提升20%。

三、想说的话

我已经购入了一本教材,如果有新内容会接着更新,本文讲的内容也比较浅层,大多数基于发布会内容,对于具体技术涉及过于少了,后续会继续钻研。也希望大家能彼此交流,或者能给我提供一些有效的学习资料。

本文标签: 鸿蒙碎片系统harmonyos