内核构架

在剖析之前我们先明晰这个内核构架概念,操作系统的内核结构可以分为三类:

模块结构,也称作单内核结构linux运维面试题,整个系统是一个大模块,而可以被界定为几个逻辑上的模块。包括处理器管理、存储器管理、文件管理,模块之间的交互通过直接调用其他模块的函数来实现层次结构,这些内核构架是把操作系统界定为内核和若干个模块或则进程,这种模块或则进程被界定为多个层次,层次之间只能是单项依赖或则双向调用的关系,不会构成循环调用(可以理解为类似于计算机网路的五个层次结构,从高到低是应用层、传输层、网络层、数据链路层、物理层)微内核结构,核心思想是内核只保留少量基本功能,而其他模块分离下来,不与她们耦合。各个模块和微内核之间通过通讯机制进行交互,因而运行效率较低。[3]

内核构架名

模块

微内核

优点

操作系统结构设计_linux操作系统结构_操作系统结构分析

灵活性好,效率高

未使用不运行,降低显存消耗,便捷第三方扩充

缺点

高耦合

效率低

Window用的何种内核构架?

Windows使用NT内核,而NT内核是一种宏内核linux内存管理,可以理解为是模块结构。

宏内核定义:

宏内核同样管理着用户程序和硬件之间的系统资源linux操作系统结构,并且和微内核不一样的是,在宏内核构架中,用户服务和内核服务在同一空间中实现。具体一点,就是内核可以代表内核进程运行代码,就是一般的内核进程;当用户进程经过系统调用或则中断步入到内核态时,内核也可以代表它运行代码。这样一来,宏内核须要管理的资源少于微内核,其大小就相对大一些了。

在宏内核构架当中,内核管理着CPU调度,显存管理,文件管理和系统调用等各模块的的工作,因为用户服务和内核服务被实现在同一空间中,这样在执行速率上要比微内核快。但是,宏内核的劣势也是显而易见的,那就是当内核中的某个服务崩溃了,整个内核也会崩溃。另一点,想要在内核中添加新的功能就意味着内核中的各个模块须要做相应的更改,因而其扩充性很弱。

假如一个内核,只在KernelMode模式里放置IPC(进程通信),MM(显存管理),Scheduling(调度)。这么就觉得是微内核,反之,假如把其它的东西,例如filesystem,VFS,devicedrivers放在KernelMode,这么就觉得是宏内核。简单来说,判定一个内核就是看它在KernelMode中运行了什么东西。

WindowsNTislikeamicrokernelinthesensethatithasacoreKernel(KE)thatdoesverylittleandusestheExecutivelayer(Ex)toperformallthehigher-levelpolicy.NotethatEXisstillkernelmode,soit'snotatruemicrokernel.

翻译一下:WindowsNT有点像微内核,由于它上面的CoreKernel(简称KE)只是负责极少的工作,其它的事呢都交给执行层(简称Ex)来完成。要指出一下,由于Ex是在KernelMode下运行的,所以WindowsNT不是一个真正的微内核。

为了不让程序任意存取资源,大部份的CPU构架都支持Kernelmode与Usermode两种执行模式。当CPU运行于Kernelmode时,任务可以执行特权级指令,对任何I/O设备有全部的访问权,还能否访问任何虚拟地址和控制虚拟显存硬件;这些模式对应x86的ring0层,操作系统的核心部份,包括设备驱动程序都运行在该模式。当CPU运行于UserMode时,硬件避免特权指令的执行,并对显存和I/O空间的访问操作进行检测linux操作系统结构,假如运行的代码不能通过操作系统的某种门机制,就不能步入内核模式;这些模式对应于x86的ring3层,操作系统的用户插口部份以及所有的用户应用程序都运行在该级别。

本文原创地址:https://www.linuxprobe.com/hnhjgzfxzdyy.html编辑:刘遄,审核员:暂无