操作系统设计/内核架构/单内核
外观
单内核方法是在硬件之上定义一个高级虚拟接口,并提供一组原语或系统调用,以在以超级用户模式运行的多个模块中实现操作系统服务,如进程管理、并发和内存管理。
即使每个为这些操作提供服务的模块都与整体分离,代码集成也非常紧密且难以正确执行,并且由于所有模块都在同一个地址空间中运行,因此一个模块中的错误可能会导致整个系统崩溃。但是,当实现完成并且值得信赖时,组件之间紧密的内部集成允许有效地利用底层系统的低级功能,从而使良好的单内核具有很高的效率。单内核方法的支持者认为,如果代码不正确,它就不应该放在内核中,如果确实存在,那么微内核方法几乎没有优势。更现代的单内核,如 Linux、FreeBSD 和 Solaris,可以在运行时加载可执行模块,允许根据需要轻松扩展内核的功能,同时有助于将内核空间中运行的代码量降至最低。它只是在监督模式下运行。
单内核操作系统是最早也是最常见的操作系统架构。操作系统的每个组件都包含在内核中,并且可以直接与任何其他组件通信(即,只需使用函数调用)。内核通常以不受限制的访问权限执行计算机系统。OS/360、VMS 和 Linux 普遍被认为是单内核操作系统。组件之间的直接互通使单内核操作系统非常高效。由于单内核将组件组合在一起,但很难隔离错误和其他错误的来源。此外,由于所有代码都以不受限制的访问权限执行,因此具有单内核的系统特别容易受到错误代码或恶意代码的损害。