华为鸿蒙发布了 !!!

开源地址如下:https://github.com/Awesome-HarmonyOS/HarmonyOS

“微内核”是鸿蒙OS的特点之一。即微内核采用同一套操作平台,针对不同硬件能力的产品进行部署,并采用分布式架构,提升效率。对此余承东指出,Android有超过1亿行代码,内核就超过2000万行,但一般用户用到的代码不到8%,整体比较冗余,在IoT时代这既没必要也不需要。

鸿蒙OS演进路标:明年推2.0版本

2017年 鸿蒙内核1.0,完成技术验证

2018年 鸿蒙内核2.0,用于终端TEE

2019年 鸿蒙OS 1.0 基于开源框架关键模块自研,分布式架构,方舟编译器,确定时延引擎,TEE微内核形式化验证,多终端开发IDE(Beta),用于智慧屏

2020年 鸿蒙OS 2.0 内核及应用框架自研,通用微内核架构,高性能图形栈,支持多语言统一编译,多终端开发IDE,满足车规级标准,用于创新国产PC、手表/手环、车机

2021年 鸿蒙OS 3.0 软硬协同优化,垂直加速文件系统,软硬件协同高性能IPC,用于音箱、耳机

2022年以后 鸿蒙将应用于VR眼镜及更多设备。

鸿蒙系统是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级。 

鸿蒙OS实现模块化耦合,对应不同设备可弹性部署,鸿蒙OS有三层架构,第一层是内核,第二层是基础服务,第三层是程序框架 。可用于大屏、PC、汽车等各种不同的设备上。还可以随时用在手机上,但暂时华为手机端依然优先使用安卓。

技术特点:

1、分布式架构首次用于终端OS,实现跨终端无缝协同体验。鸿蒙OS的“分布式OS架构”和“分布式软总线技术”通过公共通信平台,分布式数据管理,分布式能力调度和虚拟外设四大能力,将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。

2、 确定时延引擎和高性能IPC技术实现系统天生流畅。鸿蒙 OS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。确定时延引擎可在任务执行前分配系统中任务执行优先级及时限进行调度处理,优先级高的任务资源将优先保障调度,应用响应时延降低25.7%。鸿蒙微内核结构小巧的特性使IPC(进程间通信)性能大大提高,进程通信效率较现有系统提升5倍。

3、基于微内核架构重塑终端设备可信安全。鸿蒙OS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。微内核只提供最基础的服务,比如多进程调度和多进程通信等。鸿蒙OS将微内核技术应用于可信执行环境(TEE),通过形式化方法,重塑可信安全。形式化方法是利用数学方法,从源头验证系统正确,无漏洞的有效手段。传统验证方法如功能验证,模拟攻击等只能在选择的有限场景进行验证,而形式化方法可通过数据模型验证所有软件运行路径。 鸿蒙OS首次将形式化方法用于终端TEE,显著提升安全等级。同时由于鸿蒙OS微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低。

4、通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。鸿蒙OS凭借多终端开发IDE,多语言统一编译,分布式架构Kit提供屏幕布局控件以及交互的自动适配,支持控件拖拽,面向预览的可视化编程,从而使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发,多端部署,在跨设备之间实现共享生态。华为方舟编译器是首个取代Android虚拟机模式的静态编译器,可供开发者在开发环境中一次性将高级语言编译为机器码。此外,方舟编译器未来将支持多语言统一编译,可大幅提高开发效率。

安卓是宏内核,而最近热议的华为鸿蒙以及Google Flutter操作系统是微内核。那么有人要问了,什么是微内核?微内核是如何发展?其优缺点是什么呢?哥哥带你们一起来看看……

图解宏内核(左)和微内核(右)两种结构的简单架构图?

frc cd8f367f4a203646b9263f3f8e879d46 - 一亿行代码,只有8%可用?鸿蒙系统到底是何方神圣?哥哥带你认识微内核

什么是微内核?

简单来说,微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成;这些原语,仅仅包括了建立一个系统必需的几个部分;如线程管理,地址空间和进程间通信等。

微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最内核的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分。

内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在内核提供了较多的服务,因此被称为’胖微内核’,它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的内核,可以说,蒸蒸日上.第二代微内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS。

采用微内核设计的操作系统?

BeOS

AIX

L4微内核系列

Mach,用于GNU Hurd和Mac OS X

Minix

MorphOS

QNX

RadiOS

VSTa

RT-Thread

Fuchsia

谷歌新系统Fuchsia?

Fuchsia是Google开发的一款全新操作系统,试图覆盖手机、平板甚至笔记本等一系列领域。Google为该系统配备了Vulkan图形接口、3D桌面渲染Scenic、Flutter应用开发框架,还有一个称为zircon的微内核。zircon内核是从高通平台的一个Bootloader项目:Little Kernel发展而来。zircon内核属于微内核设计,只提供IPC,进程管理,地址空间管理功能。zircon区别于以进程或者以文件为核心的设计,zircon是以内存为核心来设计的,内存在zircon中是以对象的方式存在,可以通过channel通信机制传递虚拟内存对象(Virtual memory object)的句柄,进程拿到句柄后可以把这块内存映射到自己的空间。

优点

1-系统服务模块化,可移植性高;

2-内核安全性提高(模块内部的bug不影响内核稳定,将黑客利用软件漏洞造成的破坏限制在单个模块内部);

3-可以多套系统服务共存,相当于同时运行多种操作系统;

4-稳定统一的接口(可以独立维护私有驱动以及服务,不需要跟内核源码绑定);

5-在商业上,微内核可以避免代码受到一些开源协议的影响,比如GPL协议;

6-内核精简,可以进行形式化验证,利用数学证明内核的安全性;

7-数学可证明的实时性;

8-非常适合多处理器系统设计,在多处理器核心计算机上,互相依赖的系统服务可以同时运行;

缺点

1-通过进程通信的方式交换数据或者调用系统服务,而不是使用系统调用,造成额外的操作系统开销;

2-使用一些频繁使用的系统服务时,比如网络收发数据,造成的进程上下文切换对操作系统来说也是一个负担;

3-由于系统服务高度模块化,系统服务之间存在大量的内存复制;

4-对互相之间存在复杂调用关系的系统服务,难以设计通信接口;

5-系统服务与内核在地址空间上分离,造成代码局部性差,降低了cache命中率;

一亿行代码,只有8%可用?鸿蒙系统到底是何方神圣?哥哥带你认识微内核