IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 嵌入式 - 宏内核和微内核 -> 正文阅读

[系统运维]嵌入式 - 宏内核和微内核

更新历史

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

引言

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

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

内核结构

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

  • 宏内核 (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. 《嵌入式系统开发技术》,高等教育出版社;
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:58:21  更:2022-03-16 23:01:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:41:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码