OS之宏内核(Monolithic kernel)和微内核(Microkernel)详解_微内核和宏内核-程序员宅基地

技术标签: minix  操作系统  内核  

内核介绍

Microkernel:在Microkernel中,大多数内核以特权状态作为独立的进程运行,它们通过消息传递进行通信。

在这些设计中,Microkernel部分通常只是一个消息转发站:当系统调用模块想要向文件系统模块发送消息时,该消息直接通过内核[1]转发。这种方法有助于实现模块之间的隔离。在一些微内核设计中,更多的功能(如I/O)也封装在内核中。但最基本的想法是保持Microkernel尽可能小,这样整个内核只能通过移植Microkernel本身移植到一个新的平台上。所有其他模块只依赖于Microkernel或其他模块,而不直接依赖于硬件[2]。

Microkernel设计的优点之一是,它可以更容易地用更有效的实现替换现有的文件系统模块,而不会影响系统的其他部分。当系统运行[3]时,我们甚至可以添加新的系统模块开发或模块需要直接和快速地替换现有模块到系统中。另一个优点是,不必要的模块不会加载到内存中,因此微内核可以更有效地使用内存。

在这里插入图片描述

From Wikipedia
https://zh.wikipedia.org/wiki/%E5%BE%AE%E5%85%A7%E6%A0%B8

Monolithic kernel(也叫 Macrokernel):一个单片内核是一个非常大的进程。他的内部可以分为几个模块(或层次或其他)。但当它运行时,它是一个大的二值图像。模块之间的通信是通过直接调用其他模块中的函数来实现的,而不是通过消息传输[4]来实现。

Monolithic kernel的支持者声称Microkernel的消息传递开销会导致效率的降低。微内核的支持者认为,内核设计增加的灵活性和可维护性可以弥补任何损失。

详细区别:

1.Macrokernel包含了几乎所有的函数,Microkernel只包含了一些

2.Macrokernel模块是高度依赖的。例如,如果Linux移除网络,就会导致问题。正是由于Macrokernel的这一缺陷,导致了一些问题:例如,为了加强安全模块,必须修改所有的模块。
Microkernel:内核模式只保留最基本的功能:cpu调度、内存管理和进程通信。将文件系统驱动器设备放在[5]之外。

3.Macrokernel的代码可以以百万计,而Microkernel的代码只能以数万或数十万计。代码量越大,错误就越多。

4.Microkernel操作系统:windows NT 7 8、minix、maxcOS、WindowsBarrelfish
 Macrokernel: linux unix

Minix Example

在Minix简单看一看微内核操作系统
以下是Minix 2.0.4版本ps ax命令的结果界面:
在这里插入图片描述
从上面的Wiki图标可以看出,文件系统和进程内存管理已经是系统独立进程的形式。我们可以在ps中看到FS和MM。

下图是Minix3,也是ps的返回结果:
在这里插入图片描述
可以看到,甚至系统进程也暴露在我们面前,FS变成了VFS,但本质是一样的,只是名称变了。

Minix参考https://mp.weixin.qq.com/s/MLCR7qqGFWyyP0KcZqW3Kw

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42455006/article/details/121621100

智能推荐

Windows Server2008、2012安装RAC报 [INS-20802]网格基础结构配置失败_win2008安装oracle 12 ora-20802-程序员宅基地

文章浏览阅读1w次。之前有客户要求,在windows server2012上要求安装Oracle 11gR2 RAC,所以在自己的虚拟机上进行了测试。win 2012没有安装成功,使用2008报同样的错,如图查看集群状态,节点1完全OK,但是alert日志中:2014-12-26 16:54:23.967: [cssd(3748)]CRS-1601:CSSD 重新配置完毕。活动节点为 windb1 _win2008安装oracle 12 ora-20802

20 ubuntu 中科大源_Ubuntu安装docker ce、docker-compose、配置镜像加速-程序员宅基地

文章浏览阅读837次。Ubuntu安装docker ce、docker-compose、docker-machine、配置镜像加速 | 江湖博客​www.limuke.top1、Ubuntu安装Docker-CE【1】卸载旧版本旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:sudo apt-get remove docker docker-engine docke..._docker-compose 中国电子科技大学源

python-opencv高级形态学处理—边缘—凸包_python opencv mask凸包计算-程序员宅基地

文章浏览阅读1.3k次。图像的形态学处理有很多种,其中凸包处理是一种比较常见的高级方法,其主要原理是:生成一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内的运算。Python中有相应的实现方法。形态学处理,除了最基本的膨胀、腐蚀、开/闭运算、黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等。形态学目的如下:图像预处理(去噪声,简化形状)增强物体结构(抽取骨骼,细化,粗化,凸包,物体标记)从背景中分隔物体物体量化描述(面积,周长,投影,Euler-Poincare特征)_python opencv mask凸包计算

计算机二叉树节点计算公式,二叉树节点数该怎么计算?有几种算法?-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏13次。每一棵二叉树中都有左右两棵子树,子树中又有无数节点,那你们知道子树中的节点该怎么计算吗?快来跟小编了解一下吧。二叉树算法概念对于任何一棵二叉树来说,其叶子结点的数目为n0,且其度数为2的结点数n2,则n0=n2+1.证明:对于此二叉树:设其度数为1的结点数为n1. 从下往上看,每个结点都会有一个边朝上,除了根结点,则边总数为:N=n0+n1+n2-1 ①从上往下看,度数为2的结点有两个边,度数为1..._二叉树节点数计算

deepstream-test5-程序员宅基地

文章浏览阅读908次。英文说明1、可以与服务器联通,接发消息2、物联网 协议 supported by nvmsgbroker plugin is listed in the DeepStream Plugin guide_deepstream-test5

图解KMP算法(研究总结next(数组)算法实现)_kmp算法,next函数实验总结-程序员宅基地

文章浏览阅读828次。记录,防止忘记!!!一 从现象入手Kmp算法 原始匹配方法: Kmp匹配算法(从三张图了解)总结发现:当pattern中第 j 处位置(j > 0)配不上时,让pattern中第m号元素与主串当前位置比较,m = pattern串中 j-1的next(即next[j - 1])+ 1.前缀:至少不含最后一个元素后缀:至少不含第一个元素于是有个大胆的想法:将上述图中这些蓝色字体封装成一个next数组(也叫match数组)..._kmp算法,next函数实验总结

随便推点

idea运行tomcat启动报错xxx war exploded: Artifact is being deployed,_artifact untitled:war exploded: artifact is being -程序员宅基地

文章浏览阅读6.5w次,点赞13次,收藏21次。在网上找了半天也没找到问题解决方法,之后进到project structure这个页面发现problem那有显示错误,我这是解决完了的截图,如果你的problem后面有数字点进去,右侧页面出现问题在最后有一个[Fix]按钮,你点击一下把你丢失的文件add,之后在运行就好了_artifact untitled:war exploded: artifact is being deployed, please wait..

常用的SAI 时钟频率(SAI Frequency)_sai clock-程序员宅基地

文章浏览阅读861次。Clock In SAIfs Sample Rate.8k Hz - Telephone11.025k Hz22.05k Hz - Radio Broadcast32k Hz - miniDV, DAT (LP mode)44.1k Hz - CD, MPEG-1 Audio(VCD, SVCD, MP3)47.25k Hz - Commercial PCM Recorde_sai clock

PHP cookie的使用_$keys = $_cookie['key'];-程序员宅基地

文章浏览阅读536次。获取获取浏览器在请求时携带的cookie数据,使用超全局数组变量, $_COOKIE完成对cookie的获取。 其中每个 $_COOKIE 中的元素,对应一个cookie变量,元素的键就是cookie的key,元素的值就是cookie的value。时间设置通过cookie的第三个参数可以设置,有效期采用一个时间戳进行表示。 浏览器在向服务器发送请求时,会检测到cookie是否有效,只有没有过有_$keys = $_cookie['key'];

GlusterFS 分布式文件系统的卷类型及配置_gluster卷-程序员宅基地

文章浏览阅读381次。GlusterFS 分布式文件系统的卷类型及配置GlusterFS概述GlusterFS简介GlusterFS特点GlusterFS术语.模块化堆栈式架构GlusterFS工作原理GlusterFS工作流程:弹性HASH算法GlusterFS的卷类型分布式卷分布式卷的特点创建分布式卷条带卷特点创建条带卷复制卷(类似Raid1)特点创建复制卷分布式条带卷创建分布式条带卷分布式复制卷创建分布式复制卷项目环境:GlusterFS概述GlusterFS简介开源的分布式文件系统由存储服务器、客户端以及NFS/_gluster卷

SuperGO外设下载地址安装,穿透模式使用-程序员宅基地

文章浏览阅读1.5w次。SuperGo下载地址安装使用教程这里给大家分五个步骤进行教学第一步:打开MM/纵行地图/SuperGo软件的下载网站 www.tngps.com(用Safari浏览器进行操作),在APPstore下载并安装“TestFlight”软件,安装以 后就不用管这个软件了第二步:下载完“TestFlight”后,返回刚才的网站点击“开始测试”,下载MM软件并安装。第三步:打开MM/纵行地图/SuperGo软件后插入设备,等待数秒等待软件连接成功后进入操作界面。第四步:在“搜索.._supergo

iOS开发之旅--_isa和_imp指针-程序员宅基地

文章浏览阅读358次。2019独角兽企业重金招聘Python工程师标准>>> ..._ios 怎么打印 imp

推荐文章

热门文章

相关标签