更新历史

  1. 20220315
    首次创建,对宏内核与微内核的概念做出简单的解释;

宏内核和微内核

  • 引言
  • 内核结构
    • 宏内核结构
      • 特点
      • 操作系统举例
    • 微内核结构
      • 特点
      • 典型操作系统举例
  • 宏内核 V.S. 微内核
  • 参考资料

引言

与通用机操作系统一样,嵌入式操作系统也都有一个内核。
操作系统是由内核、用户界面、中间件、实用程序等组件组成的,其中内核起着最重要的作用。内核是操作系统中的一组核心程序模块,其作用包括管理系统资源、支持多任务并发执行,通常驻留在内核空间,运行于核心态,具有访问硬件设备和所有空间的权限,是系统中仅有的能够执行特权指令的程序。

运行在用户态的应用程序可以通过系统调用进入核心态,完成操作后再返回用户态。

内核结构

操作系统的架构是由内核的结构决定的。操作系统的内核结构分为两类:

  • 宏内核 (macro kernel)
  • 微内核 (micro kernel)
    由于嵌入式系统资源有限、实时性和可靠性要求较高,因而操作系统内核的结构在嵌入式系统中更为重要。

宏内核结构

有些操作系统将内核的各个功能模块(如进程管理、文件系统、设备管理、网络通信等)整合在一起,模块间的交互通过直接调用其它模块中的函数来实现,执行效率高,性能好。这类操作系统内核称为宏内核或单内核(monolithic-kernel).

特点

  • 优点:性能较好,系统的各个组件之间可以互相调用,功能切换和通信开销比较小。
  • 缺点:即使不使用的功能组件和设备驱动程序也常驻在内存中,占用资源较多,维护工作量大。

操作系统举例

单内核结构的操作系统有:传统的 Unix、BSD Unix、Linux、MS-DOS,Windows 9x, Windows CE 和 Android 操作系统也都属于单内核结构。

微内核结构

操作系统仅将必需的基本功能(如任务调度、任务间通信、低级存储管理、中断处理等)放入内核,它们运行在核心态;其他功能都在内核之外,由在用户态运行的服务来完成,这种做法使得内核结构很小,所以称之为微内核结构。

微内核结构将操作系统分为两部分:一是运行在核心态的内核,只完成很少的一部分核心任务;二是运行在用户态的若干进程,每个进程完成一组系统服务,称为“服务进程”。当用户任务运行时,如果需要操作系统提供服务,它就作为客户进程以消息进程方式向内核发出请求,内核将该请求以消息通信方式传给相应的服务进程,服务进程相应该请求并提供服务,其结果仍以消息通信方式通过内核返回给客户进程。

特点

  • 优点

    • 内核精巧,结构紧凑,占用内存少,适合资源紧张的嵌入式系统;
    • 开发和维护方便,系统可以动态更新服务模块;
    • 接口一致:微内核提供了一致性接口,所有的服务都通过消息传递方式调用,用户态任务不需要区分是内核级服务还是用户级服务;
    • 可扩展性与可配置性强,很适合嵌入式系统的可裁剪要求;
    • 可靠性高:各个服务进程在用户态进行,有自己的内存空间,以消息方式通信,一个服务进程出错不会影响到整个内核,从而增强了系统的健壮性;
    • 支持分布式系统:服务器可以在不同的处理及上运行,适合多处理机系统或分布式处理系统。
  • 缺点

    • 效率较低,性能较差;

典型操作系统举例

采用纯粹微内核结构的操作系统有 AIX, Mach, Minix, VxWorks, QNX 等。

宏内核 V.S. 微内核

宏内核:

宏内核 微内核
用户服务和内核服务运行在相同的地址空间 用户服务和内核服务运行在不同的地址空间
尺寸较微内核大 较小
扩展性差 扩展性较好
单个服务崩溃会导致整个系统崩溃 单个服务不会影响整个系统
平台提供的代码多,需开发的代码较少 需开发的代码量大

参考资料

  1. 知乎:微内核和宏内核;
  2. 聊了聊宏内核和微内核,并吹了一波 Linux;
  3. 《嵌入式系统开发技术》,高等教育出版社;

嵌入式 - 宏内核和微内核相关推荐

  1. 操作系统 宏内核和微内核的区别

    宏内核和微内核的区别 宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程.线程管理.内存管理外,文件系统,驱动,网络协议等等都在内核里面. 优点:效率高. 缺点:稳定性 ...

  2. linux是微内核还是宏内核,对比平台--宏内核与微内核

    内核是在硬件和操作系统之间形成一层的软件,它分为两种主要类型,即,宏内核和MicroKernel,这些类型主要是根据它们对进程的管理方式来区分的,它们在以下方面也有所不同:执行样式,大小,速度,稳定性 ...

  3. 【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一.操作系统需要满足的要素 二.宏内核 三.微内核 四.Linux 内核动态加载机制 一.操作系统需要满足的要素 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 为 ...

  4. 宏内核与微内核、Linux内核与Unix内核的区别

    宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程.线程管理.内存管理外,文件系统,驱动,网络协议等等都在内核里面.优点是效率高.缺点是稳定性差,开发过程中的bug经常 ...

  5. 微内核是什么?宏内核是什么?一文带你了解操作系统内核架构!

    近年来,我国自主研发操作系统被反复提及.近期,一个计算机领域内非常专业的词来到了几乎所有人的视线内,这就是--微内核.人们对操作系统内核的讨论越来越热烈,甚至有人说我不懂什么叫微内核,什么是宏内核,接 ...

  6. linux是微内核还是宏内核,微内核与宏内核比较

    微内核与宏内核比较 内核体系结构---微内核与宏内核比较 内核按照体系结构分为两类:微内核(microkernel)与宏内核(macrokernel). 微内核的系统有 WindowNT,Minix, ...

  7. linux系统是微内核结构,内核体系结构---微内核与宏内核比较

    内核体系结构---微内核与宏内核比较 内核按照体系结构分为两类:微内核(microkernel)与宏内核(macrokernel). 微内核的系统有WindowNT,Minix,Mach,etc.宏内 ...

  8. 微内核、宏内核、混合内核的对比分析

    - 什么是内核 宏内核 微内核 混合内核 - 相关产品分析 Linux RT-Thread 一.什么是内核     内核是操作系统的核心部分,管理着系统的各种资源,是连接应用程序和硬件的一座桥梁,也是 ...

  9. 微内核和宏内核的区别_8086微处理器中的过程和宏之间的区别

    微内核和宏内核的区别 Prerequisite 先决条件 Procedure in 8086 Microprocessor 8086微处理器中的过程 Macros in 8086 Microproce ...

最新文章

  1. 李宏毅机器学习笔记(三)——Regression: output a scalar amp;amp; Gradient Descent
  2. 浏览器对象模型:window对象2
  3. 图集打包算法_UGUI打包图集工具-插件Simple Sprite Packer详解
  4. ros安装过后怎么找不到安装文件_ros配置乐视奥比中光相机
  5. linux c程序面试题,嵌入式linux面试题解析(二)——C语言部分一
  6. 必不可少需要掌握的嵌入式知识(2) -- 经典数据结构总结之 (链表,队列)
  7. 怎么用transmac制作mac安装盘|transmac制作苹果系统启动U盘方法
  8. 11岁的Tumblr:开启艰难禁黄之路
  9. 充电桩检测设备TK4860E交流充电桩检定装置
  10. 自然语言处理之语言模型与词向量
  11. 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限
  12. 数据链路层---差错检测和纠正
  13. MySQL数据库企业级开发技术
  14. java毕业设计菜谱网站Mybatis+系统+数据库+调试部署
  15. ipad上创建html5文件,为 iBooks Author 创建 HTML5 小组件
  16. 中国三大互联网中心:北京、上海、深圳,你 Pick 哪个?
  17. SSE图像算法优化系列二十五:二值图像的Euclidean distance map(EDM)特征图计算及其优化。...
  18. EAGLE 基本介绍
  19. IOT物联网安全概述
  20. 在PHP中创建Google登录页面

热门文章

  1. 基于Kubernetes物联网平台Shifu开源,云原生技术助力万物互联
  2. oracle中constraint的使用,constraint用法总结 I .
  3. Dart语言入门介绍
  4. windows中文界面乱码问题
  5. 相同功能多个alway和一个always
  6. 四个快速开发平台私活必备
  7. Cockroach数据库初体验
  8. C++Test使用入门
  9. win10 安装SQL2008完成版本
  10. 强烈推荐一个不错的讲高效沟通的视频课程