微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的
内存空间内增加移植性,提供
模块化设计,以使用户安装不同的接口,如
DOS、
Workplace OS、Workplace UNIX等。
IBM、Microsoft、
开放软件基金会(OSF)和UNIX系统实验室(USL)、鸿蒙OS等新操作系统都采用了这一研究成果的优点。
简介
微
内核(英文中常译作µ-kernel或者micro kernel)。是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互
进程通信(IPC,Inter-Process Communication)以及内存管理等等。所有服务(包括
设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的
地址空间运行。所以这些服务之间彼此之间都受到了保护。
优势
能够使得不同的
API,文件系统,甚至不同的操作系统的特性在一个系统中共存。
系统非常灵活。当运行一个应用程序时,只需把选定的
系统服务加载到系统中即可。而修改了服务以后可以通过联机进行测试;并不需要重新构建或者启动一个新的内核,他们并不影响系统的运行。
系统服务或者
设备驱动故障和与它们有关的运行任务是隔绝的。
依存关系的
服务器系统可以加以限制,使为安全重要至关信赖的计算基数的应用可被削减。
这种由微内核所决定的结构(IPC,多线程)能够应用在所有的应用程序和服务上。一个精炼的微内核接口能够有演绎成更多模块的
系统结构。
结构
微内核是内核的一种精简形式。将通常与内核集成在一起的
系统服务层被分离出来,变成可以根据需求加入的
选件,这样就可提供更好的
可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。
可以用商业对比来解释微内核的模块概念。考虑一个过度忙碌的商务经理。通过将工作分给其他人,这位经理可以将他的能力更有效地用于重要的商务工作中去,并集中于其他一些任务,例如开辟新的商务分支等。可以雇佣一些新人来支持增长的
商务活动。经理协调这些工作,但由其他的人做好雇佣他们时说好要做的事。与此类似,
微内核操作系统支持执行少量核心任务,并管理可安装模块的活动。用这种方式,微内核对于它能做的工作是非常有效的,并是可移植的,这是指它可以被设计成在不同的处理器上运行。
基于微内核的操作系统具有如下特征:
微内核提供一组“最基本”的服务,如
进程调度、
进程间通信、
存储管理、处理
I/O设备。其他服务,如
文件管理、网络支持等通过接口连到微内核。与此相反,内核是集成的,比微内核更大。
微内核具有很好的扩展性,并可简化
应用程序开发。用户只运行他们需要的服务,这有利于减少
磁盘空间和
存储器需求。
厂商可以很容易地将微内核移植到其他处理器平台,并在上面增加适合其他平台需要的模块化部件。(这指
文件服务器、
工程应用等等)。
微内核和硬件部件有接口,并向可安装模块提供一个接口。在微内核中,进程通过传递消息或运行“
线程”来发生相互作用。线程为将一个任务分解为多个子任务提供了途径,在
多处理器环境下,线程可以在不同的处理器上独立运行。
像Mach和Nucleus这样的
微内核操作系统,使用户可以自己选择操作系统的接口和特性。它们十分适合可以选择多处理器和多操作系统的变化的计算机市场,开发商也可从中受益。它们能够很快地从一个系统向另一个系统移植他们的产品,使
最终用户可以得到许多应用产品。这种模块化的设计也保证了可以得到大量的可选服务。
操作系统
Nucleus
Chorus系统公司(Beaverton,oregon)设计,该
公司总部设在法国。
WindowsNT这种操作系统是围绕着Microsoft设计的微内核而设计的,它紧跟在Mach设计之后。它提供
线程调度、中断和
意外事件管理、多处理器同步和
系统恢复(在掉电之后)。它永远不会被
存储器管理程序调出内存,而且它的执行也永远不能被其它进程中断。
OSF/1MK这是
开放式系统基金会的OSF/1 UNⅨ操作系统使用微内核研究的最新版本。它实现了Mach内核,并提供虚拟
存储管理、
进程间通信和设备驱动程序管理。
UNⅨ
SVR4 UNⅨ系统实验室公司推出了一个微内核的UNⅨ SVR4(系统V版本4)。它实现了Nucleus微内核。它提供前面讨论的所有微内核特征;然而,在微内核中不管理
驱动程序。
WorkPlace OS
IBM的微内核是基于Mach微内核的。这种微内核在Motorola Power PC处理器上运行,它是Intel80486和
Pentium处理器的
直接竞争者。WorkPlace操作系统上的用户可以选择不同的运行于操作系统上的接口,如
DOS、
OS/2、Windows、U-NⅨ等。IBM微内核的体积很小(约40K),可处理基本的任务,如
存储器管理、
线程管理、中断管理和
消息传递。
鸿蒙OS的微内核是LiteOS,LiteOS是
华为物联网战略的重要组成部分,具备轻量级、
低功耗、
互联互通、组件丰富、快速开发等关键能力,基于物联网领域
业务特征打造
领域性技术栈,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期,可广泛应用于
可穿戴设备、
智能家居、
车联网、LPWA等领域。
其他信息
微内核结构由一个非常简单的
硬件抽象层和一组比较关键的
原语或
系统调用组成;这些原语,仅仅包括了建立一个系统必需的几个部分;如线程管理,
地址空间和
进程间通信等。
微核的目标是将
系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的
用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最内核的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分
微内核将许多
OS服务放入分离的进程,如
文件系统,设备
驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是
多线程的,第一代微内核,在内核提供了较多的服务,因此被称为'胖微内核',它的典型代表是
MACH,它既是GNU
HURD也是APPLE SERVER OS 的内核,可以说,蒸蒸日上.第二代微内核只提供最基本的OS服务,典型的OS是
QNX,QNX在理论界很有名,被认为是一种先进的OS.
例子
L4微内核系列
MorphOS
RadiOS
VSTa
RT-Thread
鸿蒙
Singularity