当前位置:网站首页>三种内核结构---宏内核、微内核、混合内核
三种内核结构---宏内核、微内核、混合内核
2022-07-30 05:45:00 【zpv2jdfc】
内核是硬件资源和软件资源的管理者,主要由这些组件组成:
管理CPU、管理内存、管理硬盘、管理显卡、管理网卡、管理IO设备的组件以及各种驱动程序。而三种不同的内核结构也就是三种对这些组件管理的结构。
宏内核结构
举例:LINUX
宏内核结构把上面这些管理进程、内存、IO等的代码编译连接之后,形成一个大的可执行程序。这个可执行程序在特权模式(也就是内核态)下运行,并且向用户应用软件提供接口(system call)。
宏内核的结构是这样的:
这里进程、内存管理等模块都是错综复杂交织在一起的,互相之间都会调用一些函数。宏内核结构最大的缺点就是耦合度太高,所有的组件使用同一个地址空间,如若其中一个组件出问题,其他组件可能都会出问题。当然,因为组件之间可以随意互相调用,它的性能很好。
linux内核结构:
从linux的内核全景图可以看出来,宏内核里各个模块之间互相调用函数,上下贯穿、没有左右边界,结构非常复杂。维护这样的系统结构是很困难的。
微内核
举例:MACH、MINIX
微内核与宏内核架构相反。微内核架构中内核功能尽可能少:只有进程调度、中断处理、内存空间映射、进程通信等功能。而像文件系统、设备驱动这些,则作为一个个独立的服务进程,进程之间通过消息传递来通信。
微内核的优势是降低了不同模块之间的耦合性,同时让系统更容易拓展其他功能。但是这也降低了系统性能。比如一个应用程序需要使用外设:首先通过系统调用进入内核态;内核给设备管理进程发送消息;切换到用户态,设备管理进程处理完后传递消息给内核;切换回内核态,传递消息给应用程序;切换回用户态,应用程序继续执行。中间涉及了4次状态切换,如果是宏内核的话只需要2次。
混合内核
举例:windows
混合内核和微内核很相似。混合内核把常用的组件放在内核态运行。这样既保证了系统的高性能,同时也不会使系统耦合度过高。
非常经典的WindowsNT内核结构:
从图中可以看出,除了常用的进程、内存管理等,windows把设备驱动程序和图形驱动程序也放在了内核中。
总结:
放一张维基百科对三种内核结构的解释图:

边栏推荐
猜你喜欢

原型模式(Prototype):Swift 实现

边境的悍匪—机器学习实战:第四章 训练模型

昆仑通态屏幕制作(连载3)---基础篇(按钮串口发送)

R - GIS: how to use R language implementation of GIS geospatial analysis and model prediction

Pytorch(二):数据读取机制(DataLoader、DataSet)与图像预处理模块(transforms)

边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程

QT每周技巧(1)~~~~~~~~~运行图标

标准化(Normalization)知识点总结

Nodejs PM2 monitoring and alarm email (2)

Dropout原理及作用
随机推荐
Analysis of domestic data exchange platforms
Based on R language geographic weighted regression, principal component analysis, discriminant analysis and other spatial heterogeneity data analysis
The types of data structures and MySQL index
建造者模式(Swift 实现)
边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
influxDB运维记录
对于国内数据交换平台的分析
为什么会出现梯度爆炸和梯度消失现象?怎么缓解这种现象的发生?
MySQL special statement and optimizer
昆仑通态屏幕制作(连载2)---基础篇(设定与显示,串口发送)
边境的悍匪—机器学习实战:第十六章使用RNN和注意力机制进行自然语言处理
单例模式:Swift 实现
边境的悍匪—机器学习实战:第八章 降维
protobuf coding and network communication applications (1)
Application of remote sensing, GIS and GPS technology in hydrology, meteorology, disaster, ecology, environment and health
Jdbc & Mysql timeout analysis
【Qingdao Station】High-level application of SWAT model and modeling of areas without data, uncertainty analysis and climate change, improvement of land use surface pollution impact model and case analy
原型模式(Prototype):Swift 实现
Pytorch(三):可视化工具(Tensorboard、Visdom)
Xcode 绑定按钮点击事件