内核是硬件资源和软件资源的管理者,主要由这些组件组成:
管理CPU、管理内存、管理硬盘、管理显卡、管理网卡、管理IO设备的组件以及各种驱动程序。而三种不同的内核结构也就是三种对这些组件管理的结构。
宏内核结构
举例:LINUX
宏内核结构把上面这些管理进程、内存、IO等的代码编译连接之后,形成一个大的可执行程序。这个可执行程序在特权模式(也就是内核态)下运行,并且向用户应用软件提供接口(system call)。
宏内核的结构是这样的:
这里进程、内存管理等模块都是错综复杂交织在一起的,互相之间都会调用一些函数。宏内核结构最大的缺点就是耦合度太高,所有的组件使用同一个地址空间,如若其中一个组件出问题,其他组件可能都会出问题。当然,因为组件之间可以随意互相调用,它的性能很好。
linux内核结构:
从linux的内核全景图可以看出来,宏内核里各个模块之间互相调用函数,上下贯穿、没有左右边界,结构非常复杂。维护这样的系统结构是很困难的。
微内核
举例:MACH、MINIX
微内核与宏内核架构相反。微内核架构中内