微内核是什么?宏内核是什么?一文带你了解操作系统内核架构
导读:近年来,我国自主研发操作系统被反复提及。近期,一个计算机领域内非常专业的词来到了几乎所有人的视线内,这就是——微内核。人们对操作系统内核的讨论越来越热烈,甚至有人说我不懂什么叫微内核,什么是宏内核,接下来本文将带领大家了解操作系统内核架构,微内核与宏内核到底孰优孰劣?
作者:陈海波 夏虞斌 等
来源:华章计算机(ID:hzbook_jsj)
小知识:最早的微内核操作系统 一些读者可能认为微内核架构是一个比较新的设计。事实上,早在1969年,UNIX系统开始设计的时候,类似微内核架构的操作系统就已经出现。Per Brinch Hansen开发的RC 4000多路编程系统在历史上第一次将操作系统的组件分离为各个相互交互的功能组件,以及一个负责消息通信的内核。Per Brinch Hansen在RC 4000中也首次提出了分离机制与策略的原则,以及管程(Monitor)这个概念。
弹性扩展能力:对于一个宏内核来说,很难仅仅通过简单的裁剪或扩展,使其支持资源诉求从KB到TB级别的场景。 硬件异构性:异构硬件往往需要一些定制化的方式来解决特定问题,这种定制化对于宏内核来说很难得到长期的支持。 功能安全:由于宏内核在故障隔离和时延控制等方面的缺陷,截至目前尚无通过高等级功能安全认证(例如,汽车行业的ASIL-D)的先例。 信息安全:宏内核架构的操作系统存在较大的信息安全隐患,例如内核态驱动容易导致低质量的驱动代码入侵内核,粗粒度权限管理容易带来权限漏洞等。 确定性时延:由于宏内核架构资源隔离较为困难,且各模块耦合度高导致难以控制系统调用的时延,因此较难做到确定性时延;即便为时延做一些特定优化(例如Linux-RT补丁),时延抖动仍然较大。
小思考:小的操作系统内核就是微内核吗? 不是。有一些操作系统内核(如FreeRTOS、uCOS-II等)虽然很小,但是不具备现代意义上的操作系统功能,包括虚拟内存、用户态和内核态分离等。因此它们应该被归为本章提到的简要结构内核。
评论