据华为官方消息,本月中,鸿蒙操做系统将正式发布 2.0 版本,届时还将把源码公开托管至代码平台。近一年多的犹抱琵琶半遮面,此次彷佛是要“ Show us code”了,在一睹鸿蒙芳容以前,不妨让咱们先来了解一下鸿蒙的核心要素之一 —— 微内核。 html
官方介绍,鸿蒙从设计之初就为多终端(如边缘计算 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)的句柄,进程拿到句柄后能够把这块内存映射到本身的空间。spa
此外,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/