精华内容
下载资源
问答
  • 微内核

    2019-08-28 11:12:42
    微内核 微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,如DOS、Workplace OS、Workplace UNIX等。IBM、...

    微内核

    微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,如DOS、Workplace OS、Workplace UNIX等。IBM、Microsoft、开放软件基金会(OSF)和UNIX系统实验室(USL)等新操作系统都采用了这一研究成果的优点。

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

    描述

    华为在松山湖的华为开发者大会上正式宣布了鸿蒙操作系统,该系统其中一个亮点是 —— 微内核。华为声称,微内核的启用,使其速度大大提升,并且在安全性上产生变革性突破,微内核打破了宏内核下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”人物目录。

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

    78c0771595000ad418f7be69b568c601.png

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

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

    编辑:hfy

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • 微内核和宏内核

    2020-11-30 15:13:09
    这样一来,宏内核需要管理的资源多于微内核,执行速度要快于微内核。 华为推出的鸿蒙还有Google正在研发的Fuchsia系统都是微内核微内核考虑在操作系统的内核中保留操作系统最基本的功能,也就是任务调度、内存和...

    Linux属于宏内核,也叫大内核,内核服务和用户服务都工作在相同的地址空间。具体一点,就是内核可以代表内核进程运行代码,就是通常的内核进程;当用户进程经过系统调用或者中断进入到内核态时,内核也可以代表它运行代码。这样一来,宏内核需要管理的资源多于微内核,执行速度要快于微内核。

    华为推出的鸿蒙还有Google正在研发的Fuchsia系统都是微内核。微内核考虑在操作系统的内核中保留操作系统最基本的功能,也就是任务调度、内存和设备的抽象和管理。其他的功能全部从内核移出,放到用户态中了实现,并以C/S模式对其他应用程序提供服务。微内核带来的好处主要是稳定性和实时性,即内核中模块数量少了,结构更精简更优化了,能够影响内核的程序和驱动也减少了,稳定性随之提高;另外就是实时性,内核精简了以后,响应的时延的减小。但是增加了通信成本。

    Windows就是考虑了两者,取了一个折中的方法,使用了混合内核(Hybrid Kernel)。

    展开全文
  • 我在没做过实际测试的情况下论述微内核效率的问题似乎有所不妥,我提出效率的问题也是有机制上的依据的,因为我能在两个问题上提出优化的空间。这两个问题都是基于目前架构最优秀的zircon微内核(我认为),或是形式化...

     我在没做过实际测试的情况下论述微内核效率的问题似乎有所不妥,我提出效率的问题也是有机制上的依据的,因为我能在两个问题上提出优化的空间。这两个问题都是基于目前架构最优秀的zircon微内核(我认为),或是形式化验证过得sel4微内核。

    1.微内核进程间通讯效率

    短消息机制使微内核利用寄存器实现了进程间短数据的快速传递,这是非常好的机制,非常好的解决了短消息的传递。

    不过很明显对于一个微内核来说,一个依赖于进程间数据传递的微内核,仅有快速的短消息很明显是不够的,超过短消息长度之后的数据怎么办?或许可以用直接进行内存映射实现快速且大规模的进程间通讯,资源共享引起的锁的问题怎么办,很明显带有锁应用的设计复杂度较普通应用多得多。或许可以妥善的设计实现无锁,但是很明显使用内核的最广大人民群众并没有普遍具备如此优秀的设计的能力,一边面对丰富多彩的业务逻辑,一边是内核的苛刻要求,开发者简直要怀疑人生的吧。

    所以说,微内核已经有了快速的进程间通讯机制,但是面对非常普遍的超过短消息限制的进程间通讯需求,并不足够。我在zircon中看到了应用向块设备写入数据时,不需要将数据复制到文件系统进程再写入,而是直接将待写入数据所在的内存映射了过去,宣称实现了零复制。对于依赖于进程间通讯的微内核,苛刻的零复制明显能够提高数据的读写速度,不过zircon基于capability,要写入VMO的数据需要先形成完整的数据段后再写入VMO,这应该算是一次复制而不是零复制。我有想到真正能够零复制且保障安全的IPC,不出意外地话可以到(3.解决问题)找到。或许这看起来有些极端,但是在用户态的驱动带来的开销下,如何极端、如何丧心病狂的设计都是值得一试的。毕竟,微内核是要与Linux相媲美才能算有所建树,如果同为内核,基本的性能要求都无法与之匹敌,要那些次要的指标何用?

    2.微内核响应速度

    在微内核的架构中,原本在宏内核中的驱动是活在用户态的进程;也许乍一看没什么问题,就是会产生一些开销;但这开销如何产生,会产生多少?我在<aarch64异常>中说,“写内核的大神们为所有程序猿发福利:这段代码,我们为你们写!(豪迈语气)”。写内核的大神当真是要为全世界发福利吗?

    以读写文件为例,当Linux中打开一个文件,要读其中内容时(此处不将对文件的预缓存带来的收益加入考虑),从read开始,进程飞快的从用户态进程通过系统调用进入了内核态,然后交给worker去搬数据或是直接去搬,有worker搬或许需要等work被调度,以及worker可能还要完成的其他任务,如果直接搬的话则让DMA去做,然后线程可能就暂停切出了,整个过程是非常直接的,worker线程是内核线程,其调度进、出执行都只需要保存现场切换堆栈,毕竟,内核页表是公共的。而在微内核中,还是以我最看好的zircon为例,通过进程通讯,向文件系统进程发出读文件请求;于是作为一个进程的文件系统,进程肯定是逃不开由虚拟地址空间的,有地址空间就要有一套页表,有一套页表就占页表缓存,进程切进切出是开销必然是更大的。而Linux内核中的线程由于共地址空间的优势,worker的开销显然更小一些。

    当外部设备产生中断,在Linux中通过中断的处理是在内核中完成,同样由于共地址空间的优势,仅少量的线程切换时间和等待调度时间;而微内核对中断处理的开销则更大一些,进程的切换(含地址空间的切换和线程切换)、等待调度、用户态/内核态转换等均需要开销,需要时间。

    用用户态进程实现驱动带来了稳定性,这种稳定性是基于虚拟内存实现的隔离,但虚拟内存的隔离也会带来性能的开销,欲戴其冠必承其重。只有一点性能损失的话,对于现代CPU来说忽略也是可以的,但这使Linux对微内核产生效率(即性能)的优势,一个不能全面压倒Linux的微内核如何应对整个Linux的生态的倾轧。


    L4微内核提出了基于capability的权限管理使整个内核都是基于权限搭建,据说实现了安全;我从来对权威的说法都是保持认真聆听的态度,但我从不认为权威既事实;限制对内存的访问,是形成权限的基础,现代计算机体系中通过MMU实现内存访问的限制,如果一段内存如果不是基于MMU来限制访问,那么它无法阻挡躁动不安的指针,而MMU分页最小的单位是4KB;对于基于capability的权限限制,在seL4中内核对象Untyped Memory 最小16bytes,也就是说capability的限制并不是基于MMU设计,于是我猜测seL4微内核不会让用户态的指针真正进入Untyped Memory,而是通过系统调用将其中内容复制出Untyped Memory。在zircon中,对WMO即存在读取和写入其中内容的系统调用,另外将VMO加入一个进程,是需要页对齐的(只有这样才敢允许指针在其中驰骋)。L4微内核基于capability的设计,我能领会其设计意图,但是很明显我才疏学浅,并不能看清基于capability是否能效率、安全兼顾;毕竟本就效率不足的微内核,在与Linux肉搏的时候,再加入更多效率得枷锁,还能否与之匹敌。从zircon来看,capability是与MMU结合了的,并无效率损失,但从sel4上,我并未找到相关线索。

    上面啰啰嗦嗦说了我看到了当前阶段微内核还可以改进的地方,其实并不是想表达其设计存在问题,而是说,我有想到实现一些更好的机制可以提升上述两个问题

    展开全文
  • 微内核架构设计

    2020-12-15 22:02:26
    简介:作为一名Java程序员,相信同学们都听说过微内核架构设计,也有自己的理解。那么微内核是如何被提出来的?微内核在操作系统内核的设计中又有什么作用?本文从插件化(Plug-in)架构的角度来诠释微内核架构设计,...
  • 浅谈微内核

    千次阅读 多人点赞 2018-09-23 18:32:53
    浅谈微内核 微内核是什么 谈到微内核,其实是与宏内核相比所称为微内核。宏内核大家应该再熟悉不过了,也称为集成式核心、单体式核心。像Linux就是典型的宏内核,它除了时钟中断、进程创建与销毁、进程调度、...
  • 了解微内核

    千次阅读 2019-06-27 12:03:12
    网络上不断地出现微内核OS的概念。特别是华为的鸿蒙OS 将采用微内核,更激发了对微内核的热情。其实Google Fuchsia OS 也采用了微内核Zircon。收集了一些内容,帮助自己理解什么是微内核。 术语 微内核...
  • 1 微内核和宏内核的差异微内核在我理解是一种宏内核的精简版,它将所有可以不在内核实现的功能都移出内核,同时将移出内核的系统服务变成独立的过程,内核、系统服务和软件之间可以通过IPC进行通信,模块化程度更高...
  • 宏内核与微内核

    千次阅读 2017-09-25 11:56:49
    宏内核与微内核的区别,微内核的优点
  • 微内核发展的历史2.1第一代微内核:0的突破2.2第二代微内核:性能的完善2.3第三代微内核:安全问题的关注3.Mach,L4和seL4的IPC通信机制的比较4.总结 1.微内核发展的历史背景        操作系统...
  • 微内核与宏内核

    2012-05-11 10:54:07
    关于操作系统内核的一些简述,包括微内核与宏内核的对比等
  • 微内核最近微内核的概念常常被大家提及,同时还有Google Fuchisa这样的微内核新星,这里让我们一起来认识下微内核吧。背景庞大的UNIX家族计算机技术在二战后快速发...
  • 什么是微内核架构

    2021-03-09 00:28:12
    什么是微内核架构相信大家都听说过微内核架构,也或多或少做过一些类似于微内核架构的设计,为了可以更好的设计出微内核的架构,我们了解下什么是微内核架构。说到微内核架构,大家首先会想到的是Ecl...
  • 大内核和微内核

    2020-05-26 20:00:59
    微内核 大内核只需要2次变态 微内核需要6次变态 进程管理,存储管理,设备管理 故频繁的切换cpu状态的话会降低性能 优缺点: 大内核: 高性能 内核代码大,结果混乱,难以维护 微内核 内核功能少,结构清晰,方便管理,更加...
  • 宏内核 微内核

    2020-06-21 21:42:04
    强内核,又称宏内核或单内核,是操作系统内核架构的一种,简单理解,就是把所有要用到的东西都放到了内核里,比如最...微内核的功能类似于一个消息的转发站,优点是有助于内核功能的扩展和模块间的隔离,单个模块的bu
  • 1.什么是微内核? 微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。内核只提供最基础的服务,比如多进程调度、多进程通信(IPC)等。其中进程通信是...
  • 微内核架构

    千次阅读 2019-01-23 01:28:07
    微内核架构(Microkernel Architecture),也被成为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为product-based,指存在多个版本,需要下载安装才能使用...
  • 架构模式 - 微内核模式

    千次阅读 2019-08-12 12:14:21
    1. 微内核模式简介 微内核(Microkernel)架构模式结构如下图所示,有时也被称为插件架构模式(Plug-in Architecture Pattern),通过插件向核心应用添加额外的功能,可以实现功能的独立和分离。 微内核架构包含两...
  • 宏内核和微内核

    2021-04-27 22:06:08
    宏内核和微内核 1. 宏内核 宏内核是将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息,因此有很高的性能。 在宏内核架构当中,内核管理着CPU调度,内存管理,文件管理和系统调用等各模块的的工作...
  • 从鸿蒙OS谈谈微内核架构

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

    2021-05-14 18:35:15
    一文读懂微内核 2019年8月9日华为 余承东 发布HarmonyOS 1.0,HarmonyOS的发布将一个计算机领域内非常专业的词带到了广大公众的视线内,这就是微内核。 事实上,微内核并不是一个新概念。早在1969年,UNIX系统开始...
  • 微内核与第二代微内核

    千次阅读 2009-07-10 09:31:00
    第一代微内核 微内核的概念是由Richard Rashid在卡内基梅隆(Carnegie-Mellon)大学开发Mach操作系统时提出的,目标是建立一个基于消息传送(message passing)机制的最小内核,以便在此基础上建造对其它操作系统的模拟...
  • 微内核 QNX

    2019-08-12 16:55:20
    QNX是一个微内核实时操作系统: quick unix
  • linux微内核

    千次阅读 2014-11-03 12:57:25
    给大家讲解一下linux系统的微内核
  • 微内核OS结构

    千次阅读 2019-09-19 20:29:57
    微内核操作系统结构是20世纪80年代后期发展起来的。由于它能有效地支持处理机运行,故非常适用于分布式系统环境,当前比较流行的、能支持多处理机运行的OS,几乎全部都采用了微内核结构。 微内核操作系统 1.足够小的...
  • 微内核与单内核的区别 写的很在理,值得一看
  • 又一波微内核讨论,同时也见到网上太多的言论,甚至把RT-Thread物联网操作系统归类到微内核行列。所以重新把这篇科普文章发下,并做部分澄清。本篇文章是RT-Thread...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,421
精华内容 24,168
关键字:

微内核