Chinaunix首页 | 论坛 | 博客
  • 博客访问: 781704
  • 博文数量: 611
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3792
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
  • 认证徽章:
个人简介

To be a better coder

文章分类

全部博文(611)

文章存档

2019年(167)

2018年(217)

2017年(146)

2016年(82)

分类: LINUX

2019-08-13 09:28:34

宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。做驱动开发的应该经常有按电源键强行关机的经历。
微内核:内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃,做驱动开发时,发现错误,只需要kill掉进程,修正后重启进程就行了,比较方便。缺点是效率低。典型代表QNX,QNX的文件系统是跑在用户态的进程,称为resmgr的东西,是订阅发布机制,文件系统的错误只会导致这个守护进程挂掉。不过数据吞吐量就比较不乐观了


1、微内核相当于一个信息交换中心,自身可以实现的功能较少,他的主要职责是传递一个请求,一个A模块对其他模块功能的请求。而宏内核相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理。

2、两个内核的优缺点:

      A、理论上来看,微内核的设计思想更好一些,它将系统分为各个小的功能模块,把设计难度大大降低。因此,系统的维护与修改也方便进行。

      B、但是微内核的通信失效率很高,是一个大问题。宏内核的功能模块之间的耦合度太高,将修改与维护的代价提高。但是在目前的linux操作系统里不会因为此造成很大问题(目前的linux还不算很复杂)。宏内核因为是直接调用的,所以效率比较高。

阅读(42) | 评论(0) | 转发(0) |
0

上一篇:低级错误

下一篇:linux source命令

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册