描述

华为在松山湖的华为开发者大会上正式宣布了鸿蒙操作系统,该系统其中一个亮点是 —— 微内核。华为声称,微内核的启用,使其速度大大提升,并且在安全性上产生变革性突破,微内核打破了宏内核下root即可获取用户所有权限的做法,在安全性上大大提升。

什么是微内核呢?

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

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

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

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

微内核并非一个新的概念,它已经存在很长的历史,下列的操作系统都是基于微内核结构设计的:

AⅨ

BeOS

L4微内核系列

Mach,用于GNU Hurd和Mac OS X

Minix

MorphOS

QNX

RadiOS

VSTa

RT-Thread

知乎上有人对微内核下了一个结论:

Micro-kernel 已经失败。在商业级操作系统中(包括可以用于 mission critical 的 open source 操作系统),除了 L4 还在苦苦留有少量份额,没有任何 micro-kernel 的市场。

第一代 micro-kernel 是以一个错误的方式解决了一个错误的问题。而第二代 micro-kernel 不过是以正确的方式解决了错误的问题。

Linux 究竟是单内核的还是微内核的

Linux 是一个单内核结构,同时又吸收了微内核的优点:模块化设计,支持动态装载内核模块。Linux 还避免了微内核设计上的缺陷,让一切都运行在内核态,直接调用函数,无需消息传递。

早在 1992 年,Linus 曾经与 Tanenbaum 进行一场关于操作系统内核选择的著名争论。Tanenbaum 认为,以微内核架构设计的操作系统,在理论上,比宏内核架构更加优越,主张Linux应该以微内核架构来进行重新设计。但是 Linus 以开发实务上的观点展开反击,陈述 Linux 选择宏内核架构进行开发的理由,并比较Minix与Linux的性能差异。你可以通过维基百科了解此次争论的完整细节。

Tanenbaum —— 著名的技术作家、教育家和研究者,IEEE高级会员、ACM高级会员、荷兰皇家艺术和科学院院士、1994年ACM Karl V. Karlstrom杰出教育奖、1997年ACM计算机科学教育杰出贡献奖、2002年Texty卓越教材奖、第10届ACM操作系统原理研讨会杰出论文奖、被列入“Who‘s Who in the World”人物目录。

下图是宏内核(左)和微内核(右)两种结构的简单架构图:

当然对最终用户而言,我们并不在意采用何种方案。从现实情况来看,微内核似乎还有很长的路要走。

我们非常期待鸿蒙系统早日能给最终用户提供服务。

编辑:hfy

打开APP精彩内容

点击阅读全文

鸿蒙使用linux内核微内核,浅谈鸿蒙操作系统的微内核相关推荐

  1. Linux内核之浅谈内存寻址

    Linux内核之浅谈内存寻址 前言 最近在看内存寻址的内容,略有所得,发此文与大家一起交流.我们知道计算机是由硬件和软件组成,硬件主要包括运算器.控制器.存储器.输入设备和输出设备,软件主要是操作系统 ...

  2. linux 内核fpic,浅谈-fPIC与-fpic

    -fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 ...

  3. linux内核md5,浅谈MD5及简单使用

    原理简介: MD5即Message-Digest Algorithm 5(信息-摘要算法 第5版),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又名:摘要算法.哈希算法),主流编程语言普 ...

  4. 通过从代码层面分析Linux内核启动来探知操作系统的启动过程

    通过从代码层面分析Linux内核启动来探知操作系统的启动过程 前言说明 本篇为网易云课堂Linux内核分析课程的第三周作业,我将围绕Linux 3.18的内核中的start_kernel到init进程 ...

  5. [Linux学习笔记] 浅谈信号(文章含不少学习资源)

    百金买骏马,千金买美人,万金买爵禄,何处买青春? 目录 信号的概念 信号的种类: kill -l 命令可以查看信号列表 man 7 signal 查看信号详细内容 信号的产生 补充知识 Core Du ...

  6. Linux先发送条件变量,linux 条件变量 浅谈Linux条件变量的使用

    想了解浅谈Linux条件变量的使用的相关内容吗,在本文为您仔细讲解linux 条件变量的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:linux,条件变量,下面大家一起来学习吧. Linu ...

  7. 鸿蒙系统的用途,华为高级副总裁谈鸿蒙系统:主要为工业用途

    中关村在线消息:7月19日消息,据新华社报道,近日华为董事和高级副总裁陈黎芳在接受采访时表示,他们的鸿蒙系统并非为智能手机专门设计,最近正式提交的鸿蒙操作系统商标主要是工业用途.华为还是希望能够在智能 ...

  8. Linux学习路线浅谈

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结合 ...

  9. 红帽linux挑战赛题目,浅谈红帽linux挑战赛(三)

    前言 当你不够强大的时候,你想要一个小小的机会,都没有:当你足够优秀的时候,你想要的一切都会主动来找你. 继上文 浅谈红帽linux挑战赛 浅谈红帽linux挑战赛(二) 继续介绍一下红帽挑战赛吧 红 ...

最新文章

  1. Android 接口回调
  2. className的高效匹配
  3. Excel和数据库的导入与导出
  4. 基础才是重中之重~方法override详解
  5. “策小编数洞”开工啦,欢迎来唠两块钱儿的
  6. 分享几个病毒分析检测网址
  7. seaborn_Seaborn Kdeplot –综合指南
  8. 诗一首,程序员不仅仅只会写程序
  9. 13. 在后台配置主题
  10. python残差神经网络_残差神经网络
  11. 用计算机探索规律反思,规律的背后——用计算器探索规律教学反思
  12. 酒精需要存放在防爆柜中吗?
  13. 大数据数学基础 python描述_大数据数学基础(Python语言描述)
  14. swoole运行的时候提示端口被占用问题
  15. 为什么手机网速太慢_为什么手机信号满格,网速却很慢?别再错怪手机了
  16. 论坛没落了吗?传统BBS(论坛)何去何从?
  17. string 拆分字符串
  18. 社交营销还是要走到线下
  19. 怎么复原老照片?原来有这3个方法
  20. horizon流程图_仪表、管道、阀门等化工工艺流程图的设计及画法,超多干货,等您来收!...

热门文章

  1. 父亲给儿子的一封信:当我日渐老去的时候
  2. 教师计算机培训考勤表,之江汇平台的使用-信息技术培训
  3. 低风险整体式微服务演进第一部分
  4. java使用ini4j读写和修改ini配置文件(支持section)
  5. 【多态】【虚表指针与虚表】【多继承中的多态】
  6. 2021-2022 ACM-ICPC Latin American Regional Programming Contest
  7. STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)
  8. PTA 7-4 分钟秒钟的时间相减
  9. DBM、GDBM与C语言跨平台代码研究
  10. Google Payments?