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

近年来,我国自主研发操作系统被反复提及。近期,一个计算机领域内非常专业的词来到了几乎所有人的视线内,这就是——微内核。人们对操作系统内核的讨论越来越热烈,甚至有人说我不懂什么叫微内核,什么...
摘要由CSDN通过智能技术生成

近年来,我国自主研发操作系统被反复提及。近期,一个计算机领域内非常专业的词来到了几乎所有人的视线内,这就是——微内核。人们对操作系统内核的讨论越来越热烈,甚至有人说我不懂什么叫微内核,什么是宏内核,接下来本文将带领大家了解操作系统内核架构,微内核与宏内核到底孰优孰劣?

 

操作系统内核架构

随着操作系统功能的不断增多和代码规模的不断扩大,提供合理的层级结构,对于降低操作系统复杂度、提升操作系统安全与可靠性来说变得尤为重要。图1列举了一些常见的操作系统内核架构。下面我们对这些结构进行简要的分析。

图1 操作系统内核架构的频谱:简要结构(如DOS)、宏内核(如UNIX/Linux)、

微内核、外核与多内核等

1.1 简要结构

一些功能较为简单的操作系统,会选择将应用程序与操作系统放置在同一个地址空间(addressspace)中,无须底层硬件提供复杂的内存管理、特权级隔离等功能。MS-DOS(MicroSoft Disk Operating System)是采用了简要结构的一个典型例子。该结构的一个优势在于,应用程序对操作系统服务的调用可直接通过函数调用高效完成,但缺点也同样明显,任何一个应用或操作系统模块出现了问题,均有可能使整个系统崩溃。随着操作系统功能的不断增加,简要结构会使操作系统的设计与实现难度越来越高,难以持续演进。

尽管缺乏隔离能力,简要结构的操作系统依然采用了一定的模块化与层次结构以降低复杂度。图2展示了MS-DOS的内部结构:MSDOS.Sys模块通过命令行接口与用户交互,并负责与设备驱动交互以实现对硬件设备的管理;I/O子系统(IO.Sys)实现对硬件设备I/O访问的管理,并以I/O请求作为抽象为MSDOS.Sys和设备驱动I/O提供服务。

图2  MS-DOS的系统结构

除了MS-DOS外,当前采用简要结构的操作系统还包括FreeRTOS与uCOS等。这些操作系统主要运行在微控制单元(MicroController Unit,MCU)等相对比较简单的硬件上,这些硬件通常没有提供现代意义上的内存管理单元(MemoryManagement Unit,MMU),隔离能力较弱或缺失,难以运行(往往也不需要运行)复杂的操作系统。

 

1.2 宏内核架构

宏内核(Monolithic kernel)又称单内核,其特征是操作系统内核的所有模块(包括进程调度、内存管理、文件系统、设备驱动等)均运行在内核态,具备直接操作硬件的能力,这类操作系统包括UNIX/Linux、FreeBSD等。图3展示了一个典型的宏内核架构。在操作系统代码中,通常会有类似arch/arm/的目录,用于封装与体系结构相关的功能实现。

图3 宏内核的基本结构

由于操作系统内核的功能日趋复杂,宏内核架构的操作系统也逐步采用M.A.L.H方法对功能进行模块化、抽象、分层、层级等,以控制其不断增长的复杂度。下面是一些典型的方法。

1.模块化:现代操作系统(如UNIX、Linux、Windows等)的内核均采用模块化的策略来组织各个功能。为进一步提高功能的可扩展性,现代操作系统通常还提供了可加载内核模块(Loadable Kernel Module,LKM)机制。例如,当前大部分设备驱动是以可加载模块的形式存在的,与内核其他模块解耦,使驱动开发与驱动加载更加方便、灵活。<

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值