您现在的位置是:首页 > 文章详情

在鸿蒙 Show code 之前,先来看看什么是微内核

日期:2020-09-08点击:998

据华为官方消息,本月中,鸿蒙操作系统将正式发布 2.0 版本,届时还将把源码公开托管至代码平台。近一年多的犹抱琵琶半遮面,这次似乎是要“ Show us code”了,在一睹鸿蒙芳容之前,不妨让我们先来了解一下鸿蒙的核心要素之一 —— 微内核。 

官方介绍,鸿蒙从设计之初就为多终端(如边缘计算 IoT、服务器等)而生,微内核就是鸿蒙操作系统的核心要素之一。

什么是微内核

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

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

微内核的优缺点

技术没有银弹,微内核也有优缺点。

优点

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

缺点

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

微内核项目:Minix 与 Fuchsia 的 zircon

在鸿蒙之前,已经存在一些使用微内核技术的项目。常常被人们拿来与鸿蒙对比的 Fuchsia 同样采用微内核设计。Fuchsia 是 Google 开发的一款全新操作系统,设计目标是覆盖手机、平板甚至笔记本等一系列终端。Google 为该系统准备了丰富的配套生态,包括 Vulkan 图形接口、3D 桌面渲染 Scenic、Flutter 应用开发框架,还有一个称为 zircon 的微内核。 

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

此外,CPU 制造商 Intel 近年来也在推进微内核技术,在管理引擎中加入了 Minix 微内核系统。Minix 系统由荷兰阿姆斯特丹 Vrije 大学的 Andrew S.Tanenbaum 教授开发,该系统最大的特点是可以故障隔离,自动重启失败的服务。

Minix 使用分层设计,最底层的微内核提供中断处理、进程管理、进程通信等服务,这一层运行在内核态;中间层提供轮回服务(Reincarnation Server)、文件服务、进程管理、X 图形服务以及驱动等,这一层运行在用户态;最上层为用户进程。其中轮回服务负责在中间层的服务出现崩溃时重启这些服务,从而保证服务的自我修复。正是由于 Minix 具有自我修复的特性,才被 Intel 管理引擎(ME)所选用,该管理引擎主要负责管理 Intel 芯片的内部模块。

鸿蒙微内核

根据官方资料显示,鸿蒙微内核从底层即为物联网设计。微内核仅在操作系统的内核中保留最基本功能,降低了内核的开发难度;分布式思维,将非核心的程序和模块隔离在内核之外,因此当单一程序出现错误时不会影响系统整体功能;同时,微内核相比宏内核更易于移植,开发、更新周期也得以缩短。 

上述可知,微内核的最大特性是仅在内核中保留最核心功能,是鸿蒙实现跨端操作系统的不二之选。微内核连接实时性更好,同时结合 5G 低时延场景,尤其适用于工业控制、智能交通等物联网领域。而在这些场景下,微内核更容易实现故障隔离,最大程度保证系统的可用性与安全性。

鸿蒙微内核具有分布式的特点。目前已有操作系统基本只对应于某一种硬件,如 Windows 对应 x86 PC、iOS 对应苹果移动设备等。但 IoT 时代终端种类数量极大拓展,难以针对每种硬件分别开发操作系统或应用程序,不同硬件终端的生态无法共享协同,开发效率低。基于微内核的鸿蒙一旦实现硬件解耦,就可以针对不同设备进行弹性部署(例如手机、电脑、穿戴设备、车载设备、音箱、电视、智能家居等)。 

微内核是 IoT 操作系统演进方向,也是鸿蒙系统的核心要素之一。据官方透露,鸿蒙微内核对进程间通信进行了高度优化,使得鸿蒙相比 Fuchisia 效率提升 3 至 5 倍。此外,由于微内核的代码数量远远少于宏内核,因此鸿蒙能够以对每行代码进行充分的“形式化”的安全验证,显著提升内核安全性。 

当然,鸿蒙的微内核究竟是否如其宣传的那样,一切还要等到这次的华为开发者大会后才能揭晓答案。希望这次鸿蒙能够真正的“ Show us code”。

 

参考链接:

http://www.itpub.net/2019/07/19/2461/

http://www.elecfans.com/d/1055829.html

https://www.oschina.net/news/108946/what-is-micro-kernel

原文链接:https://my.oschina.net/u/4518252/blog/4553024
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章