世界微尘里,吾宁爱与憎
操作系统的内核结构与HarmonyOS万物互联的发展
操作系统的内核结构与HarmonyOS万物互联的发展

操作系统的内核结构与HarmonyOS万物互联的发展

在近期学习过操作系统的相关内容后得知,在计算机发展史上,曾出现过许多不同的操作系统,操作系统种类比较多,很难用单一标准进行统一分类,根据我们所学的内容,大体可以分为单/多通道批处理操作系统,分时操作系统,实时操作系统,网络操作系统,分布式操作系统等等,而不管是什么操作系统,都离不开的一个特性就是他们各自的结构,而当今主流的操作系统结构就是内核结构,在内核结构的基础上,又加强了对分布式系统和网络系统的支持,所以,下面的内容主要研究Linux系统与鸿蒙系统各自的内核结构,并由此展开对分布式系统的分析

微/宏内核结构

首先得了解一下什么是微/宏内核结构

下面将将宏内核和微内核比喻成超级大兵和作战小队,所谓的宏内核,就是操作系统的所有功能绑定到一起,作为一个进程被发起。可以理解为它就是作为一个单一的程序,开机后它自己启动自己,然后就从事管理工作了,相对应的,微内核,就是操作系统有很多进程/程序组成的。系统在运行的时候,不同的进程负责不同的事务,进程之间可以通过通讯,也就是彼此喊话,来进行协调。没有一个可以控制一切的进程存在

宏内核就像一个能力超强的英雄大兵。微内核就像是由不同兵种组成的小分队

英雄大兵的优点呢,首先是什么都可以干,你要有这么一个大兵的话,什么事情都可以解决,第2个优点是,当他去执行任务的时候,他不需要花时间去跟别人沟通,那么他的缺点也是显而易见的,如果他执行任务的过程中受伤或者是死了,那这任务就彻底失败了,英雄大兵的另一个显著的缺点是,他为了执行全任务,他不得不带几乎所有的装备,所以他的这个负载量是特别特别大的,而且时代在进步,装备也在更新,每次装备更新之后,大兵都得带上新的装备,放在操作系统里就是,每一次硬件的更新,它都要在它的内核里加上相应的驱动,以上就是单内核的主要缺点

反过来说,作战小分队,在上述方面就有很多优势。一个成员挂了,整个小队不会挂,任务还是有可能继续的,至少不会影响到其他的任务,一个兵种用不了扛所有的设备,每个成员只需要负责自己擅长的东西就可以,队伍的类型是灵活的,可组装的,根据任务的不同可以搭配不同的成员,小型的任务就可以只派一两个针对性的成员。所以微内核呢,它既可以针对大型的任务,比如说手机、电脑活服务器的管理,也可以去针对微型智能硬件,但是微内核系统也有它的缺点,最显著的缺点就是,不同的兵种之间,需要协调和通讯, 随着任务难度越来越大,任务越来越复杂,需要的兵种越来越多样,成员越来越多的情况下,没有一个强有力的总指挥,通讯会产生非常大的代价,而且效果也不一定好,所以微内核系统的效率不是特别的高

当然了,人们为了改进微内核的效率,做了很多工作

之前,不同内核进程进程之间通讯,既要有信号,同时还要有控制权限信息,我要告诉你我过去这个东西申请的是一个什么样的控制权限,你同意后要检查和维护这个权限,后来人们把这个控制权限的交流,从内核之间解放出来,交给内核更上一层,也就是说给应用层面的开发者去管理和控制,内核不管这些东西了,这就简化了内核之间的通讯。因此整体的性能也得到了显著的提升。其实也就是我们书上所说的把常用功能更多的放在应用程序上,而将内核的功能尽量的简化

这个点在之后的鸿蒙操作系统做更多的分析

Linux的内核结构

1991年,芬兰赫尔辛基大学Linux Benerdict Torvalds首次发布了命名为Linux的操作系统。Linux操作系统是一个功能强大的多任务操作系统,已开发出多种版本的应用系统,有Ubuntu、openSUSE、RedHat、Centos等应用系统,这些应用系统因具有安装、升级简单得到广大用户的喜爱

然而,Linux只是内核,并非完整的操作系统,各种发行版才是真正意义的操作系统,它不能称为一个真正的或者说可用于生产的操作系统,因为它只实现了对计算机资源的简单管理(也就是实现了一个操作系统内核),却没有编译工具等其它操作系统必备的工具集成到其中

Linux是一个单内核结构,同时又吸收了微内核的优点:模块化设计,支持动态装载内核模块。Linux还避免了微内核设计上的缺陷,让一切都运行在内核态,直接调用函数,无需消息传递

Harmony OS的内核结构

华为公司新近推出的经历十年多时间自主研发的鸿蒙操作系统(HarmonyOS,是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全。目前主要用于智能物联网,HarmonyOS拥有分布架构、内核安全、生态共享、运行流畅四大优势。鸿蒙OS生态的两大核心要素包括自身的微内核结构和方舟编译器

接下来就重点分析一下我们中国这款国产操作系统Harmony OS的内核结构,就像之前所述的那样,微内核操作系统并没有完全成熟,性能比较慢,但事实上在鸿蒙之前已经有了两款微内核操作系统一个叫QNX, 另外一个是Google的那个fushsia,他们其实都已经是改进过了的微内核操作系统,基本上也已经达到了可应用的效率

但Harmony OS却说,可以做到比他们快3,5倍的效率,那么他是怎么做到的呢?

华为它本来就是做通讯的,所以它对通讯应该是有着非比寻常的理解,说到底呢,就是要减少不必要的通讯,或者呢,将多个通讯集中出来处理。比如说一搭建一个进程之间的信息高速公路让多种通讯合为一流然后进行更高效的处理,也有可能是鸿蒙是在微内核的里面加了一个相对比较,就是有点像以前的这个单内核的这么一个微内核,负责内核之间的协调

具体点来说,这是一个全新的基于微内核的面向全场景的分布式操作系统。鸿蒙OS的微内核已发展到seL4,seL4的核心非常小,不到9000行C代码,鸿蒙OS核心只保留了处理器的时间、内存、通信、中断等基本的资源管理,所有其他功能由应用层来管理,以服务的形式去提供功能。服务之间采用进程间通信IPC。还实现了模块化耦合,对应不同设备可弹性部署;首次将分布式架构用于终端OS,实现跨终端无缝协同体验;采用的确定时延引擎和高性能IPC技术使系统更流畅;其基于微内核架构可重塑终端设备安全性;通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享

更重要的是,鸿蒙OS从设计之初就为多终端而生,如边缘计算、IoT、服务器等,分布式微内核鸿蒙OS的微内核所具有的分布式特点,有利于IoT的生态协同。现有各种操作系统只对应于某一种硬件,如Windows只对应x86 PC、iOS对应苹果手机等,,无法满足IoT时代众多不同种类终端的需要,也无法针对每种硬件分别开发一种操作系统或应用程序,导致不同硬件终端的生态无法共享协同,开发效率低。因此鸿蒙OS在Io T应用中的优势更加明显

鸿蒙OS的出现将导致与iOS和Android成三足鼎立之势。尽管华为的鸿蒙OS目前只作为5G手机中Android的备胎,据已公开的资料,鸿蒙OS的UI设计、系统逻辑以及App安装界面,与现在华为手机上的EMUI并没有明显区别,这使现有EMUI用户可以尽快习惯新系统,降低学习成本。此外,由于鸿蒙OS与Android保持兼容,通过方舟编译系统,原来的应用还能够提速很多

目前主流操作系统都被国外垄断,我国华为公司的HarmonyOS虽然起步不久,但却具有许多独特优势,其改进的跨平台功能、支持多场景应用、可以在各种设备和平台上使用、可以满足消费者对低延迟和强安全性需求的特点,使其具有广阔的应用前景

分布式/网络操作系统

近几年来,影响操作系统发展的主要因素主要概括为硬件性能的发展,AI产业的发展,IO设备读写速度的提升,5G和物联网的普及等等

由于微内核结构的发展,有关分布式操作系统的技术的发展也越来越快速

作为大数据专业的学生个人认为随着云服务,云计算以及大数据,人工智能的发展,计算能力更强,可以更好处理庞大数据的分布式/网络操作系统会成为未来操作系统发展的主流方向

关于“分布式系统”的定义,《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”

从进程角度看,两个程序分别运行在两个台主机的进程上,它们相互协作最终完成同一个服务(或者功能),那么理论上这两个程序所组成的系统,也可以称作是“分布式系统”。当然,这个两个程序可以是不同的程序,也可以是相同的程序。如果是相同的程序,我们又可以称之为“集群”。所谓集群,就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。

那么,为啥我们要用分布式系统?

说起分布式系统,就不得不说下分布式系统的祖先——集中式系统。集中式系统跟分布式系统是完全相反的两个概念。集中式系统就是把所有的程序、功能都集中到一台主机上,从而往外提供服务的方式。集中式系统最容易理解了。比如,我们在学生时代做的课程设计或者开发时的小应用,我们把Web服务器、数据库等都会安装到一台电脑上。好处是,易于理解、方便维护,想要的东西我都放到了一个地方,东西好找啊。当然弊端也是显而易见的,如果这台机子崩了,或者硬盘坏了,那相当与整个系统就奔溃了,而且如果备份也是在这个硬盘上,那相当于招了灭顶之灾。

使用分布式系统的另外一个理由是可扩展性。毕竟任何主机(哪怕是小型机、超级计算机)都会有性能的极限。而分布式系统可以通过不断扩张主机的数量以实现横向水平性能的扩展。这也是为什么Google 的服务器主机,大多是淘汰的二线机子拼凑的

毫无疑问,分布式系统对于集中式系统而言,在实现上会更加复杂。分布式系统将会是更难理解、设计、构建 和管理的,同时意味着应用程序的根源问题更难发现

那么,华为的鸿蒙系统和分布式系统有什么关系,首先,华为先制定了一套协议,把各种基础硬件(比如麦克风、音响、屏幕等)、基础软件(比如文件系统、数据库等)、基础功能(比如启动APP、移动鼠标指针位置、点击某个位置等)的操作都给在协议里标准化了,然后华为基于这个协议做了套设备互联库,会通过各种连接方式尝试寻找其他设备进行连接,并对调用者屏蔽连接细节,只暴露出可以与哪个设备进行什么操作,这是“万物互联”。接着华为又对APP的形式做了调整,先是做了个可以让APP模块化运行的框架,称之为“原子化”;然后又做了个UI库,可以让APP在不同显示大小(不能说是屏幕大小)的情况下上自适应显示合适的UI。这个UI库的自适应和一般自适应的直接拉伸还不一样,这个是给显示大小分了级别然后专门做了对应的UI,并按内容重要度来进行差异化显示,级别内的大小才是直接拉伸。最后华为也同样把这套库给塞进了系统层,这是“一次开发多端部署”

对于APP来说,只要基于华为的这些东西做,就可以直接通过调用系统内置标准库的方式来实现各种互联功能,并且可以把APP的单个或多个功能拆成一个可以独立运行的模块,可以把每个模块通过各种形式单独使用(比如类似小程序、小卡片一样的各种启动和运行方式),也可以通过协议中定义的基础功能实现所谓的“流转”(也就是把这个模块包到传输另一个设备上运行)。对于硬件厂商来说,能更容易实现互联功能

参考文献

  • [1]帕力旦·吐尔逊,乎西旦·居马洪,马兰.几种主流操作系统的对比分析[J].数字通信世界,2020(10):128-129.
  • [2]李艳,刘丹,田小东. HarmonyOS特点与应用前景分析[C]//.2019四川省通信学会论文集.[出版者不详],2019:146-149.DOI:10.26914/c.cnkihy.2019.049491.
  • [3]刘彩利.浅析分布式操作系统[J].电脑迷,2017(09):44.
  • [4]何小庆.国产嵌入式操作系统发展思考[J].单片机与嵌入式系统应用,2019,19(12):4-5+10.
  • [5]钱家乐.计算机操作系统的应用与发展分析[J].无线互联科技,2015(19):95-96.
  • [6]刘彩利.浅析分布式操作系统[J].电脑迷,2017(09):44.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注