精华内容
下载资源
问答
  • 鸿蒙OS谈谈微内核架构

    万次阅读 多人点赞 2019-08-09 22:11:43
    从华为鸿蒙OS谈谈微内核架构 微内核架构简介

        今天最耀眼的莫过于华为鸿蒙OS!
    在这里插入图片描述
        贸易战至今,更深层次是一次高新科技自主创新的较量,是美国少有的几次技术垄断保卫战。表面看是中美两国的较量,实则给几乎所有国家敲响一次警钟 – 任何一个国家,科技强国战略处于不可动摇地位!信息化时代,科技制裁几乎可以决定一个民族的命运!
      美帝洋洋自得的正在于此,仰仗着自己科技实力、军事实力老大哥的地位,动辄招惹其他国家,随心所欲的薅羊毛,但这次或许难以梦想成真。华为鸿蒙OS的诞生,着实给美帝当头一棒,或许这个世界真的需要两套系统,我想世界人民的愿望大都如此吧?

        如图中所示,鸿蒙OS是一款基于微内核的全场景分布式操作系统,那么你的疑问来了?

    1. 什么是微内核?
    2. 目前已经存在的系统都不是微内核架构吗?

    微内核
        在软件开发领域,微内核是一种架构原则,其同时也被称为插件化架构。此种架构最大的优势是允许第三方开发者添加额外的插件化应用,前提是该插件应用需要遵从下文所述的开发规范。采用微内核架构的软件随处可见,如IDE软件Eclipse、企业ERP软件,这类软件自身具备丰富功能,同时支持第三方应用的即插即用。而且,第三方插件化程序的安装、运行、卸载以及故障不会对原有系统造成任何影响。

    • 架构图
      在这里插入图片描述
          微内核架构包含两类组件:核心系统和插件系统。核心系统的功能稳定,很少变更,其只拥有能使应用运行的最小功能逻辑,这些通用逻辑(例如插件模块的注册、加载、卸载,以及插件模块之间的相互通信等)不涉及任何特定业务;插件系统则具备良好的扩展性,其负责实现特定的业务逻辑,可根据特定业务需求而变更。
          显而易见,微内核架构本质上其实是将一个软件系统中的变化部分封装在插件中,从而实现不同业务之间的隔离性,达到系统快速灵活扩展的目的,同时所有特定业务相关逻辑的变更不会影响整体系统的稳定性。

    • 设计要点
      微内核架构设计有以下三个关键点:插件管理、插件链接和插件通信。

    1. 插件管理
          核心系统需要知道当前系统中共有多少个插件,哪些插件处于可用状态,什么时候加载一个插件,如何加载一个插件等。
          实现上述功能的一个常用机制是插件注册表:核心系统提供一个服务来响应插件的注册请求,最终将当前系统的所有插件信息(插件标识,类别,启动方式等)保存起来。存储方式可以选择配置文件存储或者数据表存储等。
      在这里插入图片描述
    2. 插件链接
          插件链接制定了一个插件与核心系统的通信方式,也就是链接规范,故任何一个可用插件都务必遵从核心系统中该类别插件所制定的链接规范。
          常见的链接规范有OSGI(Eclipse),消息队列,依赖注入(Spring),RPC等。
    3. 插件通信
          插件模块的设计是为了达到低耦合目的,也符合这一原则。但一个业务请求往往需要几个插件模块共同协作来实现,这就需要插件之间可以实现相互通信。插件之间的通信则需要通过中央处理器(核心系统)来作为桥梁,故核心系统除去提供上文提及的注册表机制之外,还需要提供类似操作系统总线之类的通信机制。
    • 深入探讨
    1. OSGI(Open Service Gateway Initiative)架构
          OSGI是一个插件化的标准而非一个可运行框架,当前遵循该标准的软件有:Eclipse, Apache Felix, Spring DM。其具备热插拔、扩展性、可复用性、高效性、稳定性的优点。请参看下面的逻辑架构图:
      在这里插入图片描述
          Module Layer:模块层主要涉及Jar包及共享的代码;
          Lifecycle Layer:生命周期层主要涉及组件的运行时生命周期管理;
          Service Layer:服务层主要涉及模块之间的交互和通信。
    2. 规则引擎架构
          规则引擎其实是微内核架构的一中具体实现,其执行引擎可以看作是微内核架构中的核心系统,执行引擎解析配置好的业务流规则,进而执行其中的条件和规则,以此来支撑业务层面的灵活性和扩展性。
          规则引擎常用于计费、保险、促销等业务领域,其存在以下几个优点:
      a. 便于扩展
          利用规则引擎,业务逻辑实现与业务系统分离,可以在不改动业务系统的情况下,灵活扩展业务共功能。
      b. 便于理解
          规则通过自然语言描述,业务人员更容易理解和操作。
      c. 可视化
          规则引擎一般情况下,会提供可视化的规则定制、审批、查询、管理及示例规则,便于业务人员快速配置,满足业务发展需求。
      在这里插入图片描述
      对上图的简要介绍如下:
          开发人员将业务功能分解提炼为多个规则,将规则保存在规则库中;
          业务人员根据业务需要从规则库中拉取规则,并将规则排列组合,配置成业务流程,并保存在业务库中;
          规则引擎同时从规则库和业务库中拉取规则,解析业务人员配置的业务流程,最终实现业务功能。

             感兴趣的同学可以了解下当前主流的开源规则引擎 JBoss Drools


    Linux是否是微内核架构
        查阅了一些资料,目前说法不太一致,故暂且不更新该章节!

    展开全文
  • 华为鸿蒙系统HarmonyOS学习之十:鸿蒙HarmonyOS发展史与未来

    华为鸿蒙系统HarmonyOS学习之十:鸿蒙HarmonyOS微内核技术

     

    一、前言

           把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。

    在微内核中通常提供了以下的功能:

    1. 进程/线程管理
    2. 低级存储器管理
    3. 中断和陷入处理

    微内核具有以下的特点:

    1. 足够小的内核
    2. 基于客户/服务器模式
    3. 应用机制与策略分离原理
    4. 采用面向对象技术

    机制与策略的概念

    1. 机制:实现某一功能的具体执行机构(what)
    2. 策略:在机制的基础上借助于某些参数和算法实现该功能的优化(how)

    微内核的优缺点

    优点:

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

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

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

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

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

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

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

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

    缺点

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

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

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

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

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

    二、微内核的发展历史

    微内核这个概念从提出开始到现在就在一直处于不断地发展、完善进步之中,到目前为止可以分为三个历史时期,也可以称为三代。

    第一代微内核:从无到有

         第一代微内核的主要代表是 Mach,由美国卡耐基梅隆大学的 Avie Tevanian 和 Richard Rashid 主导开发的。当时正是UNIX 发展正如日中天时期,因此Mach不可避免的受到UNIX的影响,最起码兼容unix是最起码的考量,但是与 UNIX 不同的是 Mach 使用微内核架构。Mach 以 IPC 是作为所有系统服务与内核交换数据的基础机制,充分运用 IPC、虚拟内存、多进程等特性将冗余的系统服务移出内核作为进程运行。

         1986年,Mach 发布了第2版,但此时 Mach 内核并不提供完全的系统服务,该本的内核包含了大量 4.3 版本的 BSD 系统(UNIX的一个分支)代码提供系统服务,并且 BSD 系统服务运行在内核状态,这导致 Mach 内核的代码体积甚至大于常规 UNIX 内核。这两个版本达成了如下的目标:

    • 验证了微内核的可行性;
    • 在多处理器计算机上进行移植验证了微内核在多处理器计算机上的运行;
    • 最后为了提高 IPC 的效率,Mach 使用共享内存机制来完成 IPC。

             Mach 的共享内存机制是在虚拟内存技术的支持下实现的,只有需要对内存进行写入时才进行复制。这么一处理比每次都复制一遍内存节省了内存使用同时又加快了 IPC 机制的处理时间,这个改进称为写时复制,并且在如今的通用操作系统如 Linux 中常常用到。经过测试,Mach 2.5的效率最多比 UNIX 少 25%,但是考虑到 Mach 带来的可靠性、可拓展性、安全性,这个效率损失尚可以接受。此时 Mach 内核还不算完全的微内核。而考虑到微内核可以更高效地利用多处理器计算机的处理器核心资源,寄希望Mach 把系统服务都搬到内核之外后可以把运行效率损失降下来。开放软件基金会(Open Software Foundation,OSF)宣布下一代系统 OSF/1 将基于 Mach 的内核, 众多公司开始采用这个内核:如NeXTSTEP 使用 Mach2.5(未与苹果合并之前);IBM 利用 Mach 构建 Workplace OS;苹果公司基于 Mach2.5 打造其操作系统内核 XNU。

          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 部分进行了很彻底的精简优化:

    • 内核的 IPC 机制只是单纯地传递信息,诸如安全权限检查这类的代码都省略掉,省略掉的功能全部由用户进程自己处理。如此一来 IP C功能部分的代码执行时间大大缩短;
    •  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 形式化验证相关论文。

    三、微内核与宏内核的对比

    宏内核的架构图

    微内核架构图

                形象一点说宏内核就是操作系统是个大管家,几乎包办一切,用户应用程序的需求直接向内核提出就行;微内核更像一个代理人,几乎所有的驱动、文件系统全部运行在与用户应用程序平级的用户模式下。

            如果把操作系统看成一家公司,而宏内核的特点是用户请求直达内核,内核统一安排执行,这代表此公司使用扁平化的管理架构,而微内核的操作系统中则需要设立很多如驱动,文件系统等部门,这显示公司使用制度化、等级化的管理架构。也就是说,如果宏内核代表的是层次简单的扁平化管理风格,微内核则代表多部门的制度化管理风格。

           运行效率宏内核更优:形象一点,就类似去政府部门跑公章的经历,很多时间、精力都浪费在了部门(进程)之间的上下文切换(上文已经释义)中了,微内核在效率方面肯定是处于劣势的,所以目前的主流操作系统如Linux和Windows本质上使用的都是宏内核,当然有人会说Windows使用的是混合内核,不过这种混合内核也是以效率优先的扁平化架构,本质上还是宏内核。

    宏内核vs微内核,谁更安全?:宏内核采用扁平化管理,扁平化虽然能有比较高的效率,但是难免会在身份鉴别、数据传递的过程中出现纰漏,从而给入侵者可乘之机。微内核将其内核抽象成一个有限状态机,进而证明在状态迁移与跃迁的过程中都不会发生会被恶意利用的漏洞,从而保证整个体系的安全。当然这个安全也有前提:

    • 不能有内鬼:即生成内核的编译器、链接器与操作运行的硬件环境如DMA等设备不能被提前恶意植入后门。
    • 不能有密码泄露:形式化验证只能保证制度体系本身不出问题,如果用户将自身密码泄露那系统是无法防范的。

    我们知道宏内核的操作系统尤其是Windows,经常会暴出安全漏洞,用户在没有泄露密码且没使用问题硬件的情况下,还是会遭到被黑客入侵。所以在安全性对比上微内核可谓优势明显。

    宏内核vs微内核,谁实时性强?:效率更优的宏内核在实时性方面的表现其实不如微内核。那些对于实时性要求极高的军用操作系统(如vxWorks等)使用的都是微内核架构。

    宏内核vs微内核 谁更适合多核处理器?:宏内核会在CPU核心间不断进行上下文切换,而微内核则不断在进程间进行上下文切换。微内核的回归验证了微内核与多处理器的硬件平台配合会更好

    640?wx_fmt=png

    四、鸿蒙的微内核的微内核技术

     

    •   微内核架构包含两类组件:核心系统和插件系统。核心系统的功能稳定,很少变更,其只拥有能使应用运行的最小功能逻辑,这些通用逻辑(例如插件模块的注册、加载、卸载,以及插件模块之间的相互通信等)不涉及任何特定业务;插件系统则具备良好的扩展性,其负责实现特定的业务逻辑,可根据特定业务需求而变更。
          显而易见,微内核架构本质上其实是将一个软件系统中的变化部分封装在插件中,从而实现不同业务之间的隔离性,达到系统快速灵活扩展的目的,同时所有特定业务相关逻辑的变更不会影响整体系统的稳定性。

    • 设计要点
      微内核架构设计有以下三个关键点:插件管理、插件链接和插件通信。

       

    1. 插件管理
          核心系统需要知道当前系统中共有多少个插件,哪些插件处于可用状态,什么时候加载一个插件,如何加载一个插件等。
          实现上述功能的一个常用机制是插件注册表:核心系统提供一个服务来响应插件的注册请求,最终将当前系统的所有插件信息(插件标识,类别,启动方式等)保存起来。存储方式可以选择配置文件存储或者数据表存储等。

       

    2. 插件链接
          插件链接制定了一个插件与核心系统的通信方式,也就是链接规范,故任何一个可用插件都务必遵从核心系统中该类别插件所制定的链接规范。
          常见的链接规范有OSGI(Eclipse),消息队列,依赖注入(Spring),RPC等。
    3. 插件通信
          插件模块的设计是为了达到低耦合目的,也符合这一原则。但一个业务请求往往需要几个插件模块共同协作来实现,这就需要插件之间可以实现相互通信。插件之间的通信则需要通过中央处理器(核心系统)来作为桥梁,故核心系统除去提供上文提及的注册表机制之外,还需要提供类似操作系统总线之类的通信机制。

    五、业界其他的微内核系统: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)所选用,该管理引擎主要负责管理英特尔芯片的内部模块。

     

    展开全文
  • 华为发布鸿蒙系统:基于微内核的全场景分布式OS余承东表示,鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。鸿蒙系统系统4大特点据悉,“微内核”是鸿蒙OS的特点...

    中关村在线消息:华为在今天下午举行的2019华为开发者大会上,正式推出了Harmony(鸿蒙) OS。余承东表示:鸿蒙是一款基于微内核的全场景分布式OS。

    7240281.html华为发布鸿蒙系统:基于微内核的全场景分布式OS

    余承东表示,鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。

    7240281.html鸿蒙系统系统4大特点

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

    7240281.html分布式架构首次用于终端OS,实现跨终端无缝协同体验

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

    7240281.html确定时延引擎和高性能IPC技术实现系统天生流畅

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

    7240281.html基于微内核架构重塑终端设备可信安全

    3、基于微内核架构重塑终端设备可信安全。鸿蒙OS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。微内核只提供最基础的服务,比如多进程调度和多进程通信等。

    鸿蒙OS将微内核技术应用于可信执行环境(TEE),通过形式化方法,重塑可信安全。形式化方法是利用数学方法,从源头验证系统正确,无漏洞的有效手段。传统验证方法如功能验证,模拟攻击等只能在选择的有限场景进行验证,而形式化方法可通过数据模型验证所有软件运行路径。 鸿蒙OS首次将形式化方法用于终端TEE,显著提升安全等级。同时由于鸿蒙OS微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低。

    7240281.html通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享

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

    7240281.html

    7240281.html鸿蒙系统针对不同终端弹性部署鸿蒙OS将向全球开发者开源

    华为官方表示,鸿蒙OS将向全球开发者开源,并推动成立开源基金会,建立开源社区。并且余承东表示:华为鸿蒙系统将兼容Linux、Unix和安卓系统。

    华为还透露,第一款搭载鸿蒙OS的产品就是智慧屏产品。而且华为方面还表示未来三年,除完善相关技术外,鸿蒙OS会逐步应用在可穿戴、智慧屏、车机等更多智能设备中。

    余承东则表示,鸿蒙系统随时可用到手机上,但考虑到生态原因,优先使用谷歌生态。如果不能用安卓,会使用鸿蒙,比安卓更强大。迁移到鸿蒙系统,开发量非常小。即“将安卓系统迁移到鸿蒙OS,只需1-2天即可实现。但考虑到生态和合作伙伴我们手机会优先安卓系统”,余承东说。鸿蒙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生态。期间华为还将开放在通信、照相、全场景、AI等方面的核心能力。

    其次是华为用户数量基础足够多。根据华为公布数据显示2018年手机出货量2.06亿台。截至今年5月30日,2019年华为手机发货量突破1亿台。综合数据看华为已经是世界上第二大手机厂商。

    最后是超前的5G技术布局。华为目前围绕着5G在端、管、云、芯这四方面都有布局,打造“1+8+N的三层结构化产品,其中1是指智能手机,8是指平板、智能音箱等自研产品,N则是大量的IOT设备”。如华为Mate 20 X(5G)将在本月正式发售。自研的5G多模终端芯片Balong 5000以及基于该芯片的全球首款5G商用终端华为5G CPE Pro也已经正式商用和发布。

    可以说未来鸿蒙OS不仅能为消费者带来万物互联的全场景智慧生活的极致体验,也将会成为5G+AI+IOT爆发的全场景智慧化时代下重要的生态服务。

    余承东表示:“华为相信鸿蒙OS的推出会极大地提升产业的活力和生态的丰富性,希望鸿蒙OS的推出能够为全场景时代带来更加丰富多彩的体验。

    展开全文
  • 终于鸿蒙微内核弄懂了-程序员和鼓励师的合作

    万次阅读 多人点赞 2019-10-02 14:10:22
    鸿蒙OS宣布开源的时候,各种空洞的炒作,几乎把国产操作系统的技术本质掩盖了,虽然笔者没亲眼见过鸿蒙的代码,也没用方舟成功编译什么程序,不过当华为官宣鸿蒙将使用微内核的时候其实这款OS的风格就已经确定了,...

    当鸿蒙OS宣布开源的时候,各种空洞的炒作,几乎把国产操作系统的技术本质掩盖了,虽然笔者没亲眼见过鸿蒙的代码,也没用方舟成功编译什么程序,不过当华为官宣鸿蒙将使用微内核的时候其实这款OS的风格就已经确定了,因为这就是内核的价值和意义。

    记得十几年前笔者刚刚毕业,初次进入嵌入式开发的圈子,那时总感觉操作系统距离我很远,甚至有些高不可攀。当时看到CSDN论坛上各种有关WINCE、MINIGUI等嵌入式OS的发贴时,那些生硬的代码真是给我当时还年轻的心灵留下了巨大的阴影,不过这十年来虽然工作和嵌入式渐行渐远,但是不断总结经验回头来看,感觉操作内核的设计并不是一个纯数学或者技术的建模过程,甚至还反应了我们日常生活中的很多道理。

    在科技界有一句名言“如果你无法简洁的表达你的想法,那只说明你还不够了解它”,所以经过了这些年的沉淀,笔者尝试使用最通俗的语言来向大家解释,什么是内核、什么又是微内核,阅读本文不需要读者具备什么操作系统的知识。

    宏内核vs微内核的基础逻辑

    上世纪90年代,微内核操作Minix的作者Tanenbaum与微内核操作系统Linux的作者Linus,曾经有一段非常著名的论战,(具体链接: https://www.oreilly.com/openbook/opensources/book/appa.html),这里笔者无意全文翻译,只是想说即便是Linus这样的大神级人物也难免会陷入谁优谁劣的口水仗之中,而普通人士可能更难免俗,所以我们先搁置优劣的争议,先直观来感受宏内核与微内核的架构图是什么样子的。

     

         图1. 宏内核架构图

    图1. 微内核架构图

     

    简单的讲宏内核就是操作系统是个大管家,几乎包办一切,用户应用程序的需求直接向内核提出就行;微内核更向一个代理人,几乎所有的驱动、文件系统全部运行在与用户应用程序平级的用户模式下。

    内核类型的简单类比

    为了让读者理解起来更方便,接下来让我们做一个比较简单的类比,如果把操作系统看成一家公司,而宏内核的特点是用户请求直达内核,内核统一安排执行,这代表此公司使用扁平化的管理架构,而微内核的操作系统中则需要设立很多如驱动,文件系统等部门,这显示公司使用制度化、等级化的管理架构。

    简而之宏内核代表的是层次简单的扁平化管理风格,微内核则代表多部门的制度化管理风格。

    基础概念释义

    上下文上下文切换:这个名词经常出现在各类操作系统的书籍当中,还是以公司为例,上下文就代表了处理一个项目所需要的相关材料、文件,而上下文切换则代表这些材料文件在不同部门(进程)或者领导(CPU)之间的流转。

    状态保持(快照)及恢复:假设这样一种场景,我正在领导的办公室中汇报工作,此时外面另一个人有更重要的事情向领导汇报,由于涉及权限问题需要我先退出他的办公室,那么我在退出前需要做一次状态快照,以便领导处理完紧急事务后可以继续处理我的工作。这就是计算机中状态保持与恢复的过程。

    基本推论

     运行效率宏内核更优:相信大家都有过跑部门跑公章的经历,很多时间、精力都浪费在了部门(进程)之间的上下文切换(上文已经释义)中了,微内核在效率方面肯定是处于劣势的,所以目前的主流操作系统如Linux和Windows本质上使用的都是宏内核,当然有读者可能会提出Windows使用的是混合内核,不过这种混合内核也是以效率优先的扁平化架构,本质上还是宏内核。

    宏内核vs微内核 谁更安全

    有关安全性的比较,其实仅凭直觉就能得到正确结论。正如各位日常所见,正规军队采用的都是“下级服从上级、命令绝对执行”的管理方式,而只有游击队才搞会扁平化管理的。其中逻辑也不难理解,扁平化虽然能有比较高的效率,但是难免会在身份鉴别、数据传递的过程中出现纰漏,从而给入侵者可称之机。

    而目前已有部分宏内核如sel4(Github地址:https://github.com/seL4/seL4)已经被形式化证明无误(论文地址:http://ts.data61.csiro.au/publications/nicta_full_text/955.pdf),

    对于sel4的形式化证明笔者在这里多聊几句,从本质上来说sel4的内核代码只有1万行左右,而linux的内核代码已经突破了2000万行,所以微内核的sel4由于其代码数量较小,所以研究人员干脆将其内核抽象成一个有限状态机,进而证明在状态迁移与跃迁的过程中都不会发生会被恶意利用的漏洞,从而保证整个体系的安全。当然这个安全也有前提:

    一、不有有内鬼:即生成内核的编译器、链接器与操作运行的硬件环境如DMA等设备不能被提前恶意植入后门。

    二、不能有密码泄露:形式化验证只能保证制度体系本身不出问题,如果用户将自身密码泄露那系统是无法防范的。

    不过我们也知道宏内核的操作系统尤其是Windows,经常会暴出安全漏洞,用户在没有泄露密码且没使用问题硬件的情况下,还是会遭到被黑客入侵。所以在安全性对比上微内核可谓优势明显。

    宏内核vs微内核 谁实时性强

    这个问题的答案可能与读者的第一反应不同,效率更优的宏内核在实时性方面的表现其实不如微内核。那些对于实时性要求极高的军用操作系统(如vxWorks等)使用的都是微内核架构。

    请想象这样一个场景,假如我是公司的销售部负责人,正在向总经理汇报明年的销售计划,这时总经理状态一般办公室屏蔽来访,手机屏蔽来电,专门处理我的汇报,恰在此时读者做为战略部负责人带着阿里即将收购公司的消息,来到总经理办公室门口,请求汇报。假设此时有关阿里收购汇报的优先级是高于其它所有工作的优先级,所以总经理会把我汇报的内容做一下状态保持(快照),尽快安排战略部负责人进来汇报。

    由于宏内核的扁平化架构,几乎所有请求都是直达总经理的,所以总经理对于来访及来电的屏蔽时间就会变得不可控而反观微内核此时多部门的制度化架构优势开始显现,因为总经理一般只要核对一下其它部门的处理过程是否合规,然后签名即可,因此微内核的最长屏蔽时间是可预期的。

    So当我们在向下思考一层就会发现,制度化、流程化的微信核更能保证决策层在最短时间内就给最重要的任务予以响应。

    宏内核vs微内核 谁更适合多核处理器

    其实目前微内核的回归正好说明了微内核与多处理器的硬件平台配合会更好。请想象这样的场景,假如我是一家餐厅的外卖小哥,我向内核发送了回单位取餐的请求,这是内核会把这个请求拆解为两个,一是我到达单位,状态改为空闲的通知,二是帮我准备指定的菜品,如果这家餐厅规模很小只有一个总经理当然没有任何问题,不过如果餐厅有两个决策人(双核),那么我到达的通知可能先发给了总经理1,而为我准备菜品时总经理1(核心1)有其它任务了,所以需要总经理2(核心2)来安排协调了,这时就需要在总经理1和总经理2进行上下文切换才可以满足我的需求了。而微内核在内核下面设计有部门(服务进程)的架构,就几乎不存在宏内核在核心间调研上下文切换的问题。所以在总体来说,宏内核会在CPU核心间不断进行上下文切换,而微内核则不断在部门(进程)间进行上下文切换。

    当然了宏内核针对多处理器时代也不是完全束手无策,比如Linux就提出了用户协议栈的概念,其本质逻辑就是成立一个直属某一总经理的特别行动小组,这一小组的所有任务全部在此总经理的领导下进行,从而避免跨总经理间的上下文切换以提高效率,其实这种方案也有一定局限性,比如出现单个总经理根本管不过来特别组的情况,该如何优化其实还是有待探索。

    后记

    其实本文应该是国庆当天完成的,只是笔者又花了一天时间,让妻子来读此文指出晦涩难懂的地方,修改后才最终完成的。所以自我感觉本文通俗性应该还好,如果有问题想提欢迎在文后留言,也请在我的BLINK上点赞。

    前段时间鸿蒙刚出的时候引发各方论战,支持华为的说鸿蒙是创世之举,反对的则称此为PPT开源。而笔者认为口水战是没有意义的,正如此文所言,微内核和宏内核其实各有应用场景,各有优劣,谁也碾压不了谁。可能很多人觉得首先要把方向搞对,以免后面直接被淘汰。不过这些年来堪称被淘汰的技术大多是如Silver light、XNA等应用层的开发框架,而底层的操作系统内核真是应了那句“太阳底下没什么新鲜事”的谚语,几乎不会存在出现什么新理念能直接把之前的设计完全干趴的可能。

    其实华为的鸿蒙LITEOS早已被放到Github上(https://github.com/Awesome-HarmonyOS/HarmonyOS)了,那么LiteOS的哪些代码是属于符合鸿蒙OS的设计理念可能会被照搬,哪些不符合需要重写,就做为思考题留给各位读者吧。

    今天恰是笔者担任CSDN嵌入式大区版主的十周年纪念日,所以不再秀什么代码了,只是单纯向大家打开心扉,谈一下做为一个用惯纯C的嵌入式老兵,对于操作系统内核的一点思考,希望能给各位读者尤其是那些对于操作系统不甚了解的读者以更多收获。笔者也会观察与鼓励师一同行文效果是否会更好:)

     

     

     

    展开全文
  • 操作系统微内核架构研究

    千次阅读 2020-11-18 17:02:46
    1. 简介 微内核是操作系统内核的一种,在工控系统、嵌入式系统、实时系统等领域发挥着重要作用。本文较为全面地研究了微内核技术的各个方面,包括微内核的定义...从内核架构来划分,操作系统内核可分为微内核(Micro K
  • 华为发布鸿蒙系统:基于微内核的全场景分布式OS余承东表示,鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。鸿蒙系统系统4大特点据悉,“微内核”是鸿蒙OS的特点...
  • 文章目录1、获取源码2、什么是...OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金会(OpenAtom Foundation)开源。第一个开源版本支持在128KB~128MB设备上运行,欢迎参加开源社区一起持续演进。 代码.
  • 全方位了解HarmonyOS 操作系统微内核

    千次阅读 多人点赞 2020-12-22 15:20:02
    鸿蒙OS是一款基于微内核的全场景分布式操作系统,那么微内核是什么?本文将从微内核的发展历史说起,带你全方位了解微内核并快速入门OpenHarmony的LiteOS微内核 ,帮助你理解鸿蒙系统...鸿蒙HarmonyOS微内核技术 ...
  • PingWest品玩8月9日讯,华为消费者业务今天在其全球开发者大会上正式向全球发布其全新的基于微内核的面向全场景的分布式操作系统——鸿蒙OS鸿蒙OS将作为华为迎接全场景体验时代到来的产物,发挥其轻量化、小巧、...
  • 鸿蒙微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级。那么,EMUI是否可以升级到鸿蒙OS鸿蒙和安卓、iOS有什么不同?下面,和...
  • 描述华为在松山湖的华为开发者大会上正式宣布了鸿蒙操作系统,该系统其中一个亮点是 —— 微内核。华为声称,微内核的启用,使其速度大大提升,并且在安全性上产生变革性突破,微内核打破了宏内核下root即可获取用户...
  • 原标题:华为发布基于微内核、面向全场景的分布式操作系统:鸿蒙OSPingWest品玩8月9日讯,华为消费者业务今天在其全球开发者大会上正式向全球发布其全新的基于微内核的面向全场景的分布式操作系统——鸿蒙OS鸿蒙...
  • 华为在此前的华为开发者大会上正式宣布了鸿蒙操作系统,该系统其中一个亮点是 ——微内核。华为声称,微内核的启用,使其速度大大提升,并且在安全性上产生变革性突破,微内核打破了宏内核下root即可获取用户所有...
  • 华为发布鸿蒙系统:基于微内核的全场景分布式OS余承东表示,鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。鸿蒙系统系统4大特点据悉,“微内核”是鸿蒙OS的特点...
  • 此前由于媒体传得沸沸扬扬,说华为的鸿蒙操作系统是基于Linux内核开发的,兼容安卓等,但是现实的情况是:鸿蒙操作系统(HarmonyOS)是基于微内核的,参考华为鸿蒙操作系统(HarmonyOS)主要特性介绍,附讲解图示一文。...
  • 华为发布鸿蒙系统:基于微内核的全场景分布式OS余承东表示,鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。鸿蒙系统系统4大特点据悉,“微内核”是鸿蒙OS的特点...
  • EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?...余承东表示:鸿蒙是全球首个基于微内核的全场景分布式 OS 。6 D9 }" i; z; Lw" N在正式介绍鸿蒙 OS 之前,余承东首先介绍到,未来 5 到 10 年的消费...
  • 华为消费者业务CEO余承东为大家带来全新的基于微内核的面向全场景的分布式操作系统鸿蒙OS。“鸿蒙OS联接了万物,打开了万亿级的巨大市场,选择鸿蒙就是选择未来”,余总说,“华为长期致力于包括芯片和OS在内的底层...
  • 调度报文, 本质上就是CPU core之间的通信, X86的架构下 , CPU core 之间最高效的通信方式就是通过 L3 cache-line, 一个 cache-line 是64Byte, 也就是说 在一个cache-line中最多可以包含8个64bits指针,恰恰8个指针...
  • 鸿蒙OS — 基于微内核的全场景分布式OS

    千次阅读 多人点赞 2019-08-10 14:42:57
    2019年8月9日,华为发布了鸿蒙OS(HarmonyOS)。 鸿蒙是一款基于微内核的全场景分布式OS。微内核赋予鸿蒙更高的扩展性和安全性,分布式使得鸿蒙可以全场景多终端交互,高性能IPC和确定性引擎使得鸿蒙天生流畅,是一...
  • 鸿蒙系统的微内核是什么

    万次阅读 多人点赞 2019-08-27 23:15:50
    ​最近华为高调发布了鸿蒙操作系统(Harmony OS),基于微内核的全场景分布式系统,可以按需扩展,低延时,实现更广泛的系统安全。按照发布会的PPT来看,鸿蒙OS有三层架构,第一层是微内核,第二层是基础服务,第三层...
  • 原标题:华为鸿蒙系统:基于微内核的全场景分布式OS8月9日下午华为在东莞松山湖基地举行的2019华为开发者大会上,正式推出Harmony(鸿蒙) OS。 华为发布鸿蒙系统:基于微内核的全场景分布式OS华为消费者业务CEO余承东...
  • 3、基于微内核架构重塑终端设备可信安全。4、通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。 中关村在线消息:华为在今天下午举行的2019华为开发者大会上,正式推出了Harmony鸿蒙OS。余承东表示:...
  • 微内核最近微内核的概念常常被大家提及,同时还有Google Fuchisa这样的微内核新星,这里让我们一起来认识下微内核吧。背景庞大的UNIX家族计算机技术在二战后快速发...
  • 又一波微内核讨论,同时也见到网上太多的言论,甚至把RT-Thread物联网操作系统归类到微内核行列。所以重新把这篇科普文章发下,并做部分澄清。本篇文章是RT-Thread新加入伙伴,俊小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,107
精华内容 442
关键字:

鸿蒙微内核架构