您当前的位置:首页 > 手机百科 > 华为

鸿蒙操作系统用的微内核到底是什么?

时间:2019-06-28 09:40:47  来源:  作者:
鸿蒙操作系统用的微内核到底是什么?

 

作者 | RT-Thread

责编 | 伍杏玲

【CSDN 编者按】Android/ target=_blank class=infotextkey>安卓系统是宏内核,而最近热议的华为鸿蒙操作系统是微内核。什么是微内核?微内核是如何发展?其优缺点是什么呢?一起来看看吧。

鸿蒙操作系统用的微内核到底是什么?

 

背景庞大的 UNIX 家族

计算机技术在二战后快速发展,构成计算机的主要基本单元从电子管发展到分立晶体管,再到后来的大规模集成电路。随着计算机技术发展,计算机性能越来越强劲,硬件越来越复杂,人们发现很难去直接管理计算机了,于是人们开始设计软件用于管理越来越复杂的计算机系统,这些软件称作系统级软件。

从最开始的批处理系统,多道程序系统,分时系统到上世纪 60 年代开始出现通用操作系统,计算机系统层出不穷,直到上世纪 70 年代才出现被大家广泛接受广泛使用的通用操作系统。其中最经典的当然就是 UNIX 系统了。

UNIX 系统,1971 年诞生于大名鼎鼎的贝尔实验室的一台 PDP-11/24 机器上,其后经过不断发展与传播,在 80 年代取得了巨大成功,UNIX 被移植到众多的处理器架构,并在众多行业得到广泛使用,甚至成为行业标准影响至今。

鸿蒙操作系统用的微内核到底是什么?

 

UNIX 以及类 UNIX 系统如 linux 都是典型的宏内核设计,也就是把所有系统服务都放到内核里,因为系统服务代码之间存在大量数据交换和大量的服务请求,而在同一个代码段内进行函数调用(C 语言)或跳转(汇编或者机器码时代)是最直接、最高效的方法,在同一片地址空间也方便数据交换,所以这样的宏内核设计是很自然的。

但是随着 UNIX 内核功能的拓展(文件系统、TCP/IP网络协议栈、进程管理、内存管理、驱动程序等),UNIX 内核代码也相应增加了很多,进而在可维护性、稳定性、安全性方面面临一些挑战。为了试图解决这些挑战,人们开始尝试使用微内核的思想来设计系统内核。

鸿蒙操作系统用的微内核到底是什么?

 

什么是微内核?

微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。内核只提供最基础的服务,比如多进程调度、多进程通信(IPC)等。其中进程通信是作为连接应用与用户态系统服务的桥梁。

鸿蒙操作系统用的微内核到底是什么?

 

宏内核与微内核的对比示意图

宏内核系统相关的服务基本都是放于内核态内核中,例如文件系统、设备驱动、虚拟内存管理、网络协议栈等;而微内核则把更多的系统服务(例如文件系统、POSIX 服务、网络协议栈甚至外设驱动)放到用户态应用,形成一个个服务,等待其他应用的请求。而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。

鸿蒙操作系统用的微内核到底是什么?

 

微内核的发展历史

微内核这个概念从提出开始就在不断地发展、完善进步之中,到目前为止可以分为三代。

第一代微内核:从无到有

第一代微内核的主要代表是 mach,该系统由美国卡耐基梅隆大学的 Avie Tevanian 和 Richard Rashid 主导开发。在 Mach 刚刚开始设计时,UNIX 的发展正如日中天,所以Mach在设计时的一大目标就是兼容 UNIX,但是与 UNIX 不同的是 Mach 尝试使用微内核架构去设计。Mach 以 IPC 是作为所有系统服务与内核交换数据的基础机制,充分运用 IPC、虚拟内存、多进程等特性将冗余的系统服务移出内核作为进程运行。

1986年,经过两年的开发,第一版的 Mach 发布后的第二年,Mach 就发布了第2版,不过由于时间仓促,加之没有足够的人手与资金,所以此时 Mach 内核并不提供完全的系统服务。

为了支撑系统上层运行,这一版的内核包含了大量 4.3 版本的 BSD 系统(UNIX的一个分支)代码提供系统服务,并且 BSD 系统服务运行在内核状态,这导致 Mach 内核的代码体积甚至大于常规 UNIX 内核。

第一版和第二版的 Mach 主要做了如下工作:

1. 验证了微内核的可行性;

2. 在多处理器计算机上进行移植验证了微内核在多处理器计算机上的运行;

3. 最后为了提高 IPC 的效率,Mach 使用共享内存机制来完成 IPC。

而 Mach 的共享内存机制是在虚拟内存技术的支持下实现的,只有需要对内存进行写入时才进行复制。这么一处理比每次都复制一遍内存节省了内存使用同时又加快了 IPC 机制的处理时间,这个改进称为写时复制,并且在如今的通用操作系统如 Linux 中常常用到。

经过测试,Mach 2.5的效率最多比 UNIX 少 25%,但是考虑到 Mach 带来的可靠性、可拓展性、安全性,这个效率损失尚可以接受。

当然此时 Mach 内核还不算完全的微内核。而考虑到微内核可以更高效地利用多处理器计算机的处理器核心资源,人们期待着等 Mach 把系统服务都搬到内核之外后可以把运行效率损失降下来。

同时 Mach 在微内核方面小小的尝试迅速吸引了大批公司与组织的注意,开放软件基金会(Open Software Foundation,OSF)宣布下一代系统 OSF/1 将基于 Mach 的内核, NeXTSTEP 也将使用 Mach2.5, 甚至 IBM 也打算利用 Mach 构建 Workplace OS。苹果公司这个时候也出手了,苹果公司也从此基于 Mach2.5 打造其操作系统内核 XNU,XNU的构成如下图所示,Mach 作为内核的内环,外环右侧是苹果的驱动框架(I/O Kit),外环左侧是 BSD 的系统服务代码提供 UNIX 兼容的服务层,这三者共同协作向上层提供完整的系统服务。XNU 广泛地使用在苹果公司的 OSX、IOS等系统中。

鸿蒙操作系统用的微内核到底是什么?

 

这个时候由于 UNIX 系统广泛使用带来的商业利益,此时 BSD 系统开发者与 UNIX 的拥有者 AT&T 陷入了法律大战,Mach 使用的 BSD 相关代码有了法律风险。

提升性能的期望和规避法律风险的需求推动着 Mach 3.0 的开发,Mach 3.0 的开发目标主要是为了替换 BSD 系统服务,同时尽量多地将系统服务放到内核之外去运行,成为名副其实的微内核设计。

经过众多开发者 3 年的努力,Mach 3.0 于 1990 年发布,但是由于在系统服务之间完全使用 IPC 通信,而不是向宏内核那样直接进行函数调用,即便是多处理器机器上运行也性能损失惨重,Mach 3.0 最多比 UNIX 损失 67% 运行效率,这导致 Mach 3.0 以及其所代表的第一代微内核设计被看衰。此后断断续续有在 Mach 的基础上对性能进行提升的尝试,但是均不太理想,至此 Mach 成为了微内核第一代先驱者。

第二代微内核:解决性能问题

第二代微内核的主要代表是 L3 和 L4,以及 QNX 系统使用的 Neutrino 内核。前面第一代的微内核 Mach 由于效率问题虽然失败了,但是微内核的理念并没有被放弃,德国的计算机科学家 Jochen Liedtke 认为 Mach 的 IPC 效率低下的原因就是因为 IPC 部分不够精简,于是他开发了 L3 和 L4 微内核,对 IPC 部分进行了很彻底的精简:

1. 内核的 IPC 机制只是单纯地传递信息,诸如安全权限检查这类的代码都省略掉,省略掉的功能全部由用户进程自己处理。如此一来 IP C功能部分的代码执行时间大大缩短;

2. IPC 不使用内存传递消息,而使用寄存器传递消息,同时限制 IPC 每次传递的信息长度,这样省去了对内存的访问时间。L4 微内核的 IPC 速度经过测试要比 Mach 快 20 倍,这个令人惊讶的优化效果吸引了众多的目光,使微内核的研究重新火热起来。后面 L4 内核又发展出了很多相关系统,比如 Pistachio、L4/MIPS 与 Fiasco 等等,这些内核组成了 L4 的大家族。

鸿蒙操作系统用的微内核到底是什么?

 

第二代微内核的代表除了有 L4 内核,也还有其他微内核比如 Exokernel、Rambler 等,不过商业上最成功的则是目前黑莓公司旗下的 QNX 系统所使用的 Neutrino 内核(QNX,1980年诞生,最初以 QUICK UNIX 为名,后改为 QNX;2004 年 QNX 被 Harman 国际收购;2010 年 Harman 国际下被黑莓收购,QNX 成为黑莓旗下的资产),QNX 主要为高可靠领域提供解决方案,比如交通、能源、医疗、航天航空等。

鸿蒙操作系统用的微内核到底是什么?

 

第三代微内核:主要重视安全问题等

在前面两代的基础上,第三代微内核蓬勃发展,许许多多微内核都被开发出来,主要代表有:seL4、Fiasco.OC、NOVA 等。

本来第一代微内核的设计隔离了使内核安全性降低的系统服务,让系统服务漏洞不会影响内核,进而提高了内核安全性,可以说是关上了破坏系统的门, 但是第二代系统却又给攻击者开了个窗户。

由于第二代微内核在内核中省去了关于安全性检查等步骤,把所有关于安全检查功能的实现都交给系统服务自己去实现,这导致系统服务的通信接口直接暴露给用户态,任何进程都可能无限制地请求系统服务,系统服务不得不花费额外的代价来区分请求是否合法,容易造成拒绝服务攻击。

比如正常的文件服务应该是从虚拟文件系统服务->文件系统服务->磁盘驱动服务这个流程来完成的,但是如果攻击者如果绕过虚拟文件系统服务,直接无限制地请求攻击者本身没有权限访问的文件系统服务,使文件系统服务长期处于满载状态,让其他进程无法通过正常的虚拟文件系统得到文件系统服务。为了增强安全性,且不过分影响性能,人们开始研发第三代微内核。

seL4 是在第二代内核 L4 的基础上发展而来的。seL4 不仅仅继承了 L4 内核家族的高性能特性,还具备基于端点(enndpoint)的 IPC 机制。

这种 IPC 机制最大的特点是使用了能力空间的概念,进程在使用 IPC 请求系统服务时必须具备相对应的能力,进程持有不可伪造的令牌来表示拥有请求某种服务的能力。令牌可以被复制,可以被转移,还可以通过 IPC 进行传输。令牌其实是一个指向存在于内核空间内核对象的指针,所以普通进程并不能修改自身以及其他进程的权限分配,但是内核可以对令牌指定的权限进行控制,从而保证了用户态不能绕过能力空间这个机制对系统服务造成滥用。

seL4 还是第一个完全通过形式化验证的内核,通俗说形式化验证就是在数学软件的帮助下使用数学语言自动化地推导检查系统的每一个运行状态。seL4 形式化验证相关论文。

其他的微内核系统:Fuchsia、Minix

Fuchsia 是 google 开发的一款全新操作系统,试图覆盖手机、平板甚至笔记本等一系列领域。Google 为该系统配备了 Vulkan 图形接口、3D 桌面渲染 Scenic、Flutter 应用开发框架,还有一个称为 zircon 的微内核。

zircon 内核是从高通平台的一个 Bootloader 项目:Little Kernel发展而来。zircon内核属于微内核设计,只提供 IPC、进程管理、地址空间管理功能。zircon 区别于以进程或者以文件为核心的设计,zircon 是以内存为核心来设计的,内存在 zircon 中是以对象的方式存在,可以通过 channel 通信机制传递虚拟内存对象(Virtual memory object)的句柄,进程拿到句柄后可以把这块内存映射到自己的空间。

Minix 系统则由荷兰阿姆斯特丹的 Vrije 大学的 Andrew S.Tanenbaum 教授所开发。

该系统最大的特点是可以故障隔离,自动重启失败的服务。

Minix 使用分层设计,最底层的微内核提供中断处理、进程管理、进程通信等服务,这一层运行在内核态;中间层提供轮回服务(Reincarnation Server)、文件服务、进程管理、X 图形服务以及驱动等,这一层运行在用户态,最上层为用户进程。

其中轮回服务负责在中间层的服务出现崩溃时重启这些服务,从而保证服务的自我修复。Minix 由于其自我修复特性被英特尔管理引擎(ME)所选用,该管理引擎主要负责管理英特尔芯片的内部模块。

鸿蒙操作系统用的微内核到底是什么?

 

微内核的优缺点

一、优点

  1. 系统服务模块化,可移植性高;
  2. 内核安全性提高(模块内部的 Bug 不影响内核稳定,将黑客利用软件漏洞造成的破坏限制在单个模块内部);
  3. 可以多套系统服务共存,相当于同时运行多种操作系统;
  4. 稳定统一的接口(可以独立维护私有驱动以及服务,不需要跟内核源码绑定);
  5. 在商业上,微内核可以避免代码受到一些开源协议的影响,比如 GPL 协议;
  6. 内核精简,可以进行形式化验证,利用数学证明内核的安全性;
  7. 数学可证明的实时性;
  8. 非常适合多处理器系统设计,在多处理器核心计算机上,互相依赖的系统服务可以同时运行;

二、缺点

  1. 通过进程通信的方式交换数据或者调用系统服务,而不是使用系统调用,造成额外的操作系统开销;
  2. 使用一些频繁使用的系统服务时,比如网络收发数据,造成的进程上下文切换对操作系统来说也是一个负担;
  3. 由于系统服务高度模块化,系统服务之间存在大量的内存复制;
  4. 对互相之间存在复杂调用关系的系统服务,难以设计通信接口;
  5. 系统服务与内核在地址空间上分离,造成代码局部性差,降低了 cache 命中率。

声明:本文系投稿,版权归作者所有。



Tags:鸿蒙   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
华为手机的智慧生活估计大家都不陌生,那它到底有什么智慧功能呢?其实华为手机智慧生活可以通过简单的设置,就能控制你家里的电器,非常方便。华为手机通过绑定三方平台账号建立连...【详细内容】
2022-07-08  Tags: 鸿蒙  点击:(10)  评论:(0)  加入收藏
近日HarmonyOS 3.0开发者Beta正式推送,不少网友都收到了鸿蒙3.0开发者申请通过的通知。根据此前招募公告来看,支持此次升级的测试的设备包括:华为P50、P50 Pro、P50 Pocket、Ma...【详细内容】
2022-07-06  Tags: 鸿蒙  点击:(19)  评论:(0)  加入收藏
消息称华为鸿蒙OS 3.0正式版系统将在7月下旬正式推送,而首批适配机型也正式公布,其中包括:华为P50系列、Mate 40系列、和Mate 50系列,平板方面只有华为MatePad Pro 12.6英寸2021...【详细内容】
2022-06-30  Tags: 鸿蒙  点击:(33)  评论:(0)  加入收藏
根据小编之前有关鸿蒙的文章评论,耗电快是鸿蒙系统遇到的最多的问题。事实上无论是Android还是iOS,如果不能正确使用和对系统进行优化设置,都会出现较为严重的好点情况。下面小...【详细内容】
2022-06-23  Tags: 鸿蒙  点击:(38)  评论:(0)  加入收藏
智能手机发展到今天,大家几乎人手一部。 智能手机从功能机发展而来,之所以说它“智能”,是因为它可以安装各种APP,跳出了功能机原本的通信功能,拥有无限的可能性。 但大家又常常...【详细内容】
2022-06-21  Tags: 鸿蒙  点击:(57)  评论:(0)  加入收藏
机哥想起,大概是四五年前,安卓手机玩家流行过一阵子,利用各种主题、启动器、插件,来模拟出iOS系统的味道。 谁能想到,现在风水轮流转,轮到iPhone玩家想把手机搞成安卓了。 尤其是...【详细内容】
2022-06-21  Tags: 鸿蒙  点击:(76)  评论:(0)  加入收藏
今天为大家带来的是,华为鸿蒙系统的功能,让你实现控制中心可以快速打开你的健康码,因为现在疫情的原因出门需要健康码,每次点开都很麻烦,今天我教教大家如何快速的实现,打开自己的...【详细内容】
2022-06-16  Tags: 鸿蒙  点击:(73)  评论:(0)  加入收藏
IT之家 6 月 15 日消息,据华为官网消息,鸿蒙 HarmonyOS 3.0 开发者 Beta 版本已开启公测招募。据官方介绍,HarmonyOS 3.0 开发者 Beta 版极大增强 JS / eTS 语言应用开发能力,同...【详细内容】
2022-06-15  Tags: 鸿蒙  点击:(21)  评论:(0)  加入收藏
近一段时间,几个事情又将华为拉到了大家的眼前,一个是华为终于要出新机了,华为Nova10系列已经得到官宣,预计六月底上市,还有就是华为mate50系列的消息越来越多,从曝光的消息来看发...【详细内容】
2022-06-14  Tags: 鸿蒙  点击:(98)  评论:(0)  加入收藏
一、华为持有股份的"中国软件国际":国元国际发布最新研报:中国软件国际(0354.HK)作为华为同舟共济合作伙伴,韧性成长。公司在云智能、鸿蒙、智能汽车等数字化领域新业务发展迅速,...【详细内容】
2022-06-14  Tags: 鸿蒙  点击:(38)  评论:(0)  加入收藏
▌简易百科推荐
手机桌面显示的图标,字体大小,这些都是根据使用习惯调节的。如果对默认的设置不满意,我们可以打造一个属于自己的个性桌面。充分发挥手机桌面设置的灵活性以及自己的创造能力。...【详细内容】
2022-07-08  难得一懒    Tags:华为手机   点击:(13)  评论:(0)  加入收藏
全场景畅连高清互联是华为畅连的核心支持高清音/视频,能连接手机、平板、手表、智慧屏、儿童手表等设备,让你与好友、家人随时随地沟通。即便在网络信号不佳条件下,也能享受流...【详细内容】
2022-07-08  AirDroid    Tags:畅连   点击:(23)  评论:(0)  加入收藏
华为手机最让其他品牌羡慕的功能,快捷启动及手势应该算得上是其中一个,如果提到华为手机的快捷启动与手势,大家肯定就会想到,不就是指关节截屏、录屏,和隔空操作吗?当然不是这么简...【详细内容】
2022-07-01  系统管理员LEE    Tags:华为手机   点击:(13)  评论:(0)  加入收藏
手机的流畅度与我们的心情是成正比的。越流畅心情也会越加地舒适,反之,则有扔掉手机的冲动。话说,扔掉手机确实可以让我们心情大好。但是,当我们冷静下来的时候,悲伤也会随之涌上...【详细内容】
2022-07-01  难得一懒    Tags:华为手机   点击:(24)  评论:(0)  加入收藏
指关节大法1.指关节截屏 默认情况下指关节截屏是关闭状态的,需要手动设置一下,打开设置—智能辅助—手势控制—智能截屏,这样便开启了智能截屏功能。 单个指关...【详细内容】
2022-07-01  LinYixun    Tags:华为手机   点击:(13)  评论:(0)  加入收藏
华为手机里面最好用的功能“智慧感知”,但是通常情况下里面的开关默认是关闭状态。所以自然就被大家所忽略,其实智慧感知里面的四个隔空手势功能还是非常好用的,今天就跟大家来...【详细内容】
2022-06-22  系统管理员LEE    Tags:华为手机   点击:(39)  评论:(0)  加入收藏
在科技发展的加持下,各大产品的更新速度越来越快,智能手机自然也不例外。对于一直稳居国产手机“王者地位”的华为来说,每年更新的新品就有数十款,所以大家换新机的频率就越来越...【详细内容】
2022-06-07  码不亭蹄    Tags:华为手机   点击:(48)  评论:(0)  加入收藏
手机上面会安装各种聊天应用,在与好友的聊天过程中会出现一些重要的信息,或者比较隐私的内容。通常来说,彼此间聊天内容,只要不让第三方看,就可以随意来调侃。但是,有的时候会去截...【详细内容】
2022-05-30  难得一懒    Tags:一键打码   点击:(92)  评论:(0)  加入收藏
解放双手,说句话就可以接,挂电话,原来这么方便,赶紧试试你知道吗?华为手机可以直接解放双手,说句话就可以接听电话,挂断电话。嗨喽大家好我是肖肖关注肖肖了解更多手机知识在日常生...【详细内容】
2022-05-16  移妹儿肖肖    Tags:华为手机   点击:(151)  评论:(0)  加入收藏
一面是用户对手机的依赖越来越强,另一面是当下复杂的互联网安全环境中各种问题频出。人们在享受数字化便利的同时,也在承受着网络安全和隐私保护方面的隐忧及危害。这中间,需要...【详细内容】
2022-04-25  懂懂笔记  搜狐号  Tags:华为应用市场   点击:(54)  评论:(0)  加入收藏
站内最新
站内热门
站内头条