micro-kernel & macro-kernel

2019-05-02  本文已影响0人  向往_8968

micro-kernel 和 macro-kernel 的差别是设计思想的不同。

在此之前讨论一个基本的问题:什么是kernel,怎么定义它的role。

简单对software进行分类,可以分为system software和application software,其中system software提供对application software developer的基本支持如运行环境、和提供其所需的服务,让其能够不care application software运行的硬件环境。本质上是对software从业人员进行流水化,分层化,以提供开发人员的效率;也让开发人员从初期的为了兼容不同的硬件环境的巨大effort中解脱出来。这里我们对system software的开发称之为操作系统开发。

而众所周知,内核是操作系统的核心,是对硬件细节的第一层抽象。它的作用是负责管理系统的进程、内存、中断、文件和网络,设备驱动,决定了系统的性能和稳定性。简而言之,对上屏蔽硬件细节,提供各种服务,如进程间通信,设备驱动和文件系统等等。另一方面有了kernel的隔离可以对application software进行权限的管控。

在micro-kernel的设计思想是尽可能的精简kernel。对于kernel本身提供的服务进行精简,只包含进程管理、进程间通信、地址管理等。常见device都作为一个服务的进程对其他进程提供相应服务。

而macro-kernel则会将硬件所能提供的服务都集成到kernel中,并对常见需求,如显示,输入系统,中断管理,gpio,外设管理等。

上一篇 下一篇

猜你喜欢

热点阅读