整块性核心

電腦作業系統核心架構

整块性核心(英语:Monolithic kernel),也译为集成式核心单体式核心,一种作业系统核心架构,此架构的特性是整个核心程式是一个单一二进位执行档,在核心空间以监管者模式(Supervisor Mode)来执行。相对于其他类型的作业系统架构,如微核心架构或混核心架构等,这些核心会定义出一个高阶的虚拟介面,由该介面来涵盖描述整个电脑硬体,这些描述会集合成一组硬体描述用词,有时还会附加一些系统调用,如此可以用一个或多个模组来实现各种作业系统服务,如行程管理、共时(Concurrency)控制、记忆体管理等。

单核心架构的概要示意图。
分别为宏内核、微内核、混合内核的操作系统结构

概论

整块性核心被视作为运行在单一位址空间的单一的行程,核心提供的所有服务,都以特权模式,在这个大型的核心位址空间中运作,这个位址空间被称为核心空间(kernel space)。它通常是以单一静态二进位档案的方式被储存在磁碟,或是快取记忆体上,在开机之后被载入记忆体中的核心空间,开始运作。

它的优点是设计简单。在核心之中的通讯成本很小,核心可以直接调用核心空间内的函式,跟使用者空间的应用程式呼叫函式一样,因此它的效能很好。在1980年代之前,所有的作业系统都采用这个方式实作;即使到了现在,主要的作业系统也多采用这个方式。

微核心的支持者认为,整块性核心的移植性不佳,即使有的整块性核心将其运作从整体性运作拆分成几个服务模组,并让各模组各自运作,其作业系统的程式码依然是高度紧密的,很难修改成其他类型的作业系统架构。此外,所有的模组也都在同一块定址空间内执行,倘若某个模组有错误、瑕疵(Bug),执行时就会损及整个作业系统运作。反过来,如果整块性架构的作业系统在开发设计时相当完善,并经测试验证后具有高度可靠性,则作业系统内的各软体组件因具有高度紧密性,如此在系统的低阶运作上将格外有效率。

可载入性的模组

现在多数采行整块性架构设计的作业系统,如OpenVMSLinuxFreeBSD、以及Solaris等,都已经能在运作执行阶段中,以动态方式来载入(Load)、卸载(Unload)可执行的模组,不过这些模组是属于二进位程式码的层次,或称映像层次,而非核心架构的层次。即使整块性核心进行模组化转化,也不会与微核心或混核心架构的核心产生区分上的混淆,因为微核心、混核心的模组是属于系统架构的层次。

就实务上,动态载入/卸载模组的作法,等于是用一种较简易的方式来弹性管控执行中的作业系统核心,若没有动态载入/卸载机制,作业系统的核心想要进行任何的调整、变换,都必须重新开机才能达成。因此模组化是必然且必要的,如此才能让核心功效轻松地扩展、延伸,此外也能适时减轻硬体的执行运作负担。

另外,有些整块性作业系统为了让它的核心空间达到最小化,也会运用动态载入/卸载机制来达成此一目标。

部分整块性架构的作业系统举例

相关条目

参考文献

  • 锺斌贤; 曾煜棋,颜春煌. 作業系統. 国立空中大学. ISBN 957-661-461-9. 
  • 天野 司(Tsukasa Amano). How Windows Work-視窗系統是怎麼運作的. 博硕出版社. ISBN 957-527-867-4.