其他分享
首页 > 其他分享> > 一文读懂微内核

一文读懂微内核

作者:互联网

一文读懂微内核

2019年8月9日华为 余承东 发布HarmonyOS 1.0,HarmonyOS的发布将一个计算机领域内非常专业的词带到了广大公众的视线内,这就是微内核

事实上,微内核并不是一个新概念。早在1969年,UNIX系统开始设计的时候,类似微内核架构的操作系统就已经出现。1969年,丹麦计算机科学家Per Brinch Hansen开发的RC 4000 Multiprogramming System操作系统,是历史上第一次将操作系统组件分离为各个相互交互的组件,将内核简化为仅用于通信和支持系统,并使用管道共享内存作为其进程间通信的基础。如今回看RC 4000 Multiprogramming System虽然其本身并不是很成功,但激发了微内核概念。

继续HarmonyOS的话题,看了HarmonyOS 1.0发布会回放后,我有一个疑问:
什么是宏内核,什么又是微内核,微内核相比于宏内核真的有如此大的优势吗?

华为HarmonyOS 1.0发布会直播回放:
https://www.bilibili.com/video/av62950256/

一、操作系统

了解微内核宏内核之前,首先了解一下操作系统

操作系统(Operating System)是现代计算平台的基础与核心支撑系统,负责管理硬件资源(包括输入输出设备的初始化、分配与回收)、控制程序运行改善人机交互以及为上层应用软件提供运行环境等。操作系统作为计算机之“魂”,是释放硬件能力、构建应用生态的基础

从应用的角度看,操作系统的作用:一是服务于应用,二是管理应用

从硬件的角度看,操作系统主要包含两类功能:

操作系统简要结构

通常而言,狭义的操作系统指的是操作系统内核加上一个Shell(即UNIX/Linux等操作系统中的命令行页面)。随着硬件种类和应用需求越来越丰富,大量共性功能沉淀到操作系统中,操作系统的内涵和外延不断扩大,因此,广义的操作系统又可以进一步分为操作系统内核与操作系统框架。操作系统内核负责对硬件资源的管理与抽象,为操作系统框架提供基础的系统服务(操作系统内核又分为宏内核、微内核等);操作系统框架则基于操作系统内核提供的服务为不同的应用提供API接口与运行环境。

二、宏内核&微内核

现在操作系统大多采用宏内核架构(如UNIX、Linux等),操作系统将一些基本的、公共的、与硬件紧密相关的 (如中断处理、内存管理、文件系统、设备驱动等)、运行频率较高的功能(如进程调度、时钟管理等)以及关键性的数据结构独立出来,使之常驻内存,并对其进行保护。内核中采用模块化设计组织各个功能,所有模块运行于内核空间,模块间通信直接调用模块间提供的接口函数实现。

宏内核基本架构

宏内核可以理解为是个很大的进程,其内部又能够被分为若干功能模块(或者是若干层)。宏内核在运行的时,为一个单独的二进制大映象,模块间的通讯是通过直接调用其他模块中的函数实现的,而非消息传递。

宏内核中许多的功能模块都在同一个内核空间上运行,伴随着操作系统的发展,内核模块的复杂度越来越高,操作系统在可靠性安全性方面慢慢出现了一些问题,一个很小的bug都会使整个系统崩溃。为解决宏内核存在的问题,许多研发人员尝试对宏内核架构进行解耦,将部分非核心功能(如文件系统、设备驱动等)从内核中拆分出来,作为一个独立的服务运行于单独的进程中,并为其提供进程间通信的能力(IPC Inter Process Communication),内核中只保留最核心的功能(如内存管理、进程调度等),这种架构被称为微内核架构。在微内核下服务与服务互相隔离,单个服务即使出现故障或受到安全攻击,也不会导致整个操作系统的崩溃或被攻破,从而有效提供了操作系统的可靠性与安全性。

微内核基本架构

Minix

有兴趣详细研究微内核实现与原理的同学,可以研究一下Minix
Minix第一个版本于1987年发布,是荷兰计算机科学家Andrew S. Tanenbaum为了教学而创作,如今为Andrew S. Tanenbaum教授所著《操作系统:设计与实现》的示例代码。
Minix启发了Linux内核的创作。1990年,还在上大学的Linus TorvaldsMinix得到灵感,出于对操作系统的兴趣,于1991年发布了Linux。

Minix目前有三个主要的版本:

三、宏内核VS微内核

自宏内核与微内核这两种架构出现伊始,人们就两者的优劣与特点展开了深入的讨论。
当前随着物联网时代的到来,使微内核架构的操作系统架构再次受到广泛关注。

当前智能终端呈现多样化的发展趋势,面对物联网时代的到来,微内核天生具备的模块化解耦、弹性部署的能力以及安全稳定的特性,非常符合物联网的发展,但进程间通信(IPC Inter Process Communication)的性能无疑成为微内核的软肋

微内核虽然存在IPC性能软肋,但IPC性能并非不可提升。
德国计算机科学家Jochen Liedtke(L3微内核与L4微内核系列的创造者)曾表示,高性能IPC的设计与实现必然是与体系结构相关的,过度的抽象将极大影响IPC的性能,而利用体系结构相关的状态进行优化则可将IPC性能提升到极致
2019年华为HarmonyOS发布会中,余承东透露华为在微内核IPC优化方面的成果,采用微内核架构的HarmonyOS在IPC方面性能可以达到同样采用微内核的Fuchsia操作系统的5倍
相信未来广大技术研发人员不断对IPC性能进行优化,微内核IPC的性能会有大的提升。

参考

维基百科 Regnecentralen:
https://en.wikipedia.org/wiki/Regnecentralen

维基百科 RC_4000_multiprogramming_system:
https://en.wikipedia.org/wiki/RC_4000_multiprogramming_system

维基百科 微内核:
https://zh.wikipedia.org/wiki/%E5%BE%AE%E5%85%A7%E6%A0%B8

维基百科 Mach:
https://zh.wikipedia.org/wiki/Mach

现代操作系统:原理与实现
https://item.jd.com/12731379.html

操作系统的发展:
https://www.feng.com/post/6209622

有关微内核:
https://mp.weixin.qq.com/s/MLCR7qqGFWyyP0KcZqW3Kw

========== THE END ==========

欢迎关注我的公众号

标签:IPC,https,一文,读懂,Minix,内核,微内核,操作系统
来源: https://blog.csdn.net/aiwusheng/article/details/116801397