1. 简单百科
  2. 微内核

微内核

微内核(Micro Kernel)是操作系统中仅包含为所有应用所必需的资源控制与通信功能的内核。内核是操作系统中最靠近硬件且享有最高特权的一层微内核功能以外的功能作为服务程序在内核外实现,供使用时调用。这样,可使操作系统之内核为最小。

简介

20世纪70年代,随着操作系统的功能日益增强,系统日益复杂庞大,其内核亦随之增大,从而出现了微内核概念。其优点是使操作系统易于理解、实现、维护和移植,系统服务剪裁与配置较为灵活,利于适应不同应用的要求。但是,置于内核外的系统服务效率将会下降,含于内核内的功能的灵活性受到限制。因此,在设计具微内核结构的操作系统时重要的考虑因素是性能与灵活性之间的权衡以及易维护性与系统开销之间的权衡。

为使在不具微内核结构的操作系统上运行的应用程序也能在具微内核结构的操作系统上继续使用,通常在具微内核的操作系统与应用程序之间提供一个针对不具微内核结构的操作系统(如unix)的仿真接口,将应用程序的系统调用转换成对具微内核结构的操作系统的调用。

优势

微内核的主要优势有以下几点:

(1)能够使得不同的API,文件系统,甚至不同的操作系统的特性在一个系统中共存。

(2)系统非常灵活。当运行一个应用程序时,只需把选定的系统服务加载到系统中即可。而修改了服务以后可以通过联机进行测试,并不需要重新构建或者启动一个新的内核,他们并不影响系统的运行。

(3)系统服务或者设备驱动故障和与它们有关的运行任务是隔绝的。

(4)依存关系的服务器系统可以加以限制,使为安全重要至关信赖的计算基数的应用可被削减。

(5)由微内核所决定的结构(IPC,多线程)能够应用在所有的应用程序和服务上,一个精炼的微内核接口能够有演绎成更多模块的系统结构。

结构

微内核是内核的一种精简形式。将通常与内核集成在一起的系统服务层被分离出来,变成可以根据需求加入的选件,这样就可提供更好的可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。

可以用商业对比来解释微内核的模块概念。考虑一个过度忙碌的商务经理。通过将工作分给其他人,这位经理可以将他的能力更有效地用于重要的商务工作中去,并集中于其他一些任务,例如开辟新的商务分支等。可以雇佣一些新人来支持增长的商务活动。经理协调这些工作,但由其他的人做好雇佣他们时说好要做的事。与此类似,微内核操作系统支持执行少量核心任务,并管理可安装模块的活动。用这种方式,微内核对于它能做的工作是非常有效的,并是可移植的,这是指它可以被设计成在不同的处理器上运行。

基于微内核的操作系统具有如下特征:

微内核提供一组“最基本”的服务,如进程调度、进程间通信、存储管理、处理I/O设备。其他服务,如文件管理、网络支持等通过接口连到微内核。与此相反,内核是集成的,比微内核更大。

微内核具有很好的扩展性,并可简化应用程序开发。用户只运行他们需要的服务,这有利于减少磁盘空间和存储器需求。

厂商可以很容易地将微内核移植到其他处理器平台,并在上面增加适合其他平台需要的模块化部件。(这指文件服务器、工程应用等等)。

微内核和硬件部件有接口,并向可安装模块提供一个接口。在微内核中,进程通过传递消息或运行“线程”来发生相互作用。线程为将一个任务分解为多个子任务提供了途径,在多处理器环境下,线程可以在不同的处理器上独立运行。

MACHnucleus这样的微内核操作系统,使用户可以自己选择操作系统的接口和特性。它们十分适合可以选择多处理器和多操作系统的变化的计算机市场,开发商也可从中受益。它们能够很快地从一个系统向另一个系统移植他们的产品,使最终用户可以得到许多应用产品。这种模块化的设计也保证了可以得到大量的可选服务。

系统

卡耐基·梅隆大学开发的Mach是一个著名的具微内核结构的操作系统,Mach与UNIX BSD完全兼容,但Mach3.0采用一个很小的内核,将UNIX操作系统功能都移到内核以外,并实现了多种仿真接口。例如,Apple MacOS X服务器操作系统也采用了Mac内核。

微软 Winds NT可以看作一个混用层次结构与微内核结构的例子。Winds NT可以运行win32、OS/2、POSIX等应用。其内核支持客户应用与应用服务器之间的消息传递,而在内核以外运行针对各种应用类型的服务器。

参考资料