宏内核(英语:Monolithic kernel),又称单核心,是操作系统核心架构的一种,此架构的特性是整个核心程序都是以核心空间(Kernel Space)的身份及监管者模式(Supervisor Mode)来运行。

概念

宏内核

相对于其他类型的操作系统架构,如微核心架构或混核心架构等,这些核心会定义出一个高级的虚拟接口,由该接口来涵盖描述整个电脑硬件,这些描述会集合成一组硬件描述用词,有时还会附加一些系统调用,如此可以用一个或多个模块来实现各种操作系统服务,如进程管理、共时(Concurrency)控制、存储器管理等。

宏内核被视作为运行在单一地址空间的单一的进程,核心提供的所有服务,都以特权模式,在这个大型的核心地址空间中运作,这个地址空间被称为核心空间(kernel space)。它通常是以单一静态二进制文件的方式被存储在磁盘,或是高速缓存上,在开机之后被加载存储器中的核心空间,开始运作。

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

模块

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

就实务上,动态加载

/卸载模块

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

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

举例

类Unix系统(Unix-like)的核心

·Linux

·Syllable

·Unix核心

· BSD

·Solaris

DOS

·DR-DOS

·MS-DOS

·Microsoft Windows 9x系列(95、98、98SE、Me)

·Mac OS(从最初版到Mac OS 8.6版)

·OpenVMS

·XTS-400