内核是操作系统最基础的构件。 因而,内核结构往往对操作系统的外部特性以及应用领域有着根本的影响。内核的结构往往可分为单内核(monolithic kernel), 微内核(microkernel), 超微内核(nanokernel),以及外核(exokernel)等。超微内核与外内核等其他结构是在二十世纪末的时候在理论界发展起来的,大部分时候在实验室里生存;而自二十世纪八十年代起, 大部分理论研究都集中在以微内核为首的“新兴”结构之上;同时,在应用领域之中, 以单内核结构为基础的操作系统却一直占据着主导地位。
一、单内核结构的操作系统:
所谓单内核结构就是在内核中集中了全部或大部分的系统服务或系统功能,如图1。单内核的好处是大大地减少了在系统服务间的上下文切换(context switch)和系统服务间的消息引用(Message involved)上花费的时间,从而在理论上获得比微内核结构更快的应用处理速度。基于单内核的操作系统通常有着较长的历史渊源。 例如,绝大部分UNIX的家族史都可上溯至二十世纪六十年代。 该类操作系统多数有着相对古老的设计和实现 (例如某些UNIX中存在着大量七、八十年代的代码)。
当今的,占主导地位的操作系统如windows、Linux、大部分的Unix等都属于单内核的操作系统结构。
二、微内核结构的操作系统
所谓微内核就是将大部分的系统服务如网络服务,文件系统等作为代理进程或服务进程运行在用户态或用户空间;内核只是提供一些非常基本的系统服务如内存分配,进程调度和消息处理等,如图2。因为运行在内核空间的代码被大大的减少了,也大大提高了内核的稳定性。然而,因为一个程序的实现常常需要多次系统调用,这些调用一般都调用内核提供的进程或任务间的通讯功能而最后由处于用户态的相应的服务/代理进程处理,而这些处理最后调用内核功能,于是在这种结构的操作系统中,一个功能调用要经历多次进程的上下文切换,并且要引发多次消息转换,这样,从整体上来说,使得微内核结构的操作系统在理论上要比单内核的操作系统慢。(当然,这也不是说一个设计巧妙的微内核系统也一定会比一个设计普通的单内核系统慢。)随着计算机硬件的发展,进程切换的时间越来越短,微内核操作系统的优势就越来越体现出来了,在WindowsNT系列操作系统中,已经有了微内核的影子了,在Windows2000及以后版本的Windows系列操作系统中微软号称解决了臭名昭著的“蓝屏”的后面是什么呢?那就是微内核,微软的操作系统架构已经转移到了微内核上来了。因此,微内核操作系统是我们将来的研究方向,也是操作系统的发展方向,我们将要实现的也就是一个基于微内核的操作系统。