- 内核有哪些组成部分?
- 宏内核和微内核的区别是什么?
- 内核分层的目的是什么?
计算机中资源主要包括软件资源和硬件资源,软件资源可以理解为各种各样的数据,那么硬件资源就是计算器的实际组成部分,主要可以分为下面这些部分:
- 总线,负责连接其他设备,它是设备工作的基础
- CPU,中央处理器,负责执行程序和处理数据运算
- 内存,负责存储运行时的代码和数据
- 硬盘,负责长久储存用户文件数据
- 网卡,负责计算机与计算机之间的通信
- 显卡,负责显示工作
- 各种I/O设备,显示器,打印机,键盘,鼠标等
内核又可以理解为对系统中软件和硬件资源的管理,从不同的功能角度来说可以划分到下面这些部分:
- 进程管理,把运行时的程序抽象为进程,控制进程在CPU上的的资源占用情况
- 内存管理,为程序分配内存,或者释放内存
- 文件系统,管理用户数据
- 图形系统,管理显卡,负责显示信息
- 网络组件,网卡主要负责网络通讯,网络通讯需要各种通信协议,最后在内核中形成了网络协议栈
- IO管理器,管理显示器,鼠标,键盘等
宏内核
内核部分包含进程管理,内存管理,文件系统,图形系统,网络组件,IO管理器等,把这些部分中所有代码编译,链接在一起,形成一个大的可执行程序。这里很类似于单体架构。
优点:减少了模块之间调用的成本,性能高。
缺点:各个功能模块之间高度耦合,扩展性和移植性差,一个模块出了问题,整个内核的所有组件都可能有问题。
微内核
内核部分的功能要做到精简,不需要太多的功能,仅仅只有进程调度、处理中断、内存空间映射、进程间通信等功能。进程管理、内存管理、设备管理、文件管理等服务功能,做成一个个服务进程。
进程之间通过消息进行通信,这有那种微服务的感觉。
优点:结构挺清晰,系统有良好的一致性,内核代码量少,伸缩性和拓展性都比较好
缺点:进程通讯增加了成本,性能比较差
内核分层
内核中的代码,垂直划分不同的层级,比如把硬件平台相关的代码抽离出来,化作硬件代码层,当移植到不同的硬件平台时,只需要修改这地方的代码即可。
- 内核实现分层的主要目的和好处在于屏蔽底层细节,使上层开发更加简单。
- 分层以后可以提高可移植性,
混合架构
混合内核大致是将需要频繁调用的功能放在内核中,提升性能。不会经常使用的功能模块可以放在内核外作为服务运行,这样也不会造成内核过度臃肿。
当前系统内核,Linux是宏内核,Windows和NT内核和苹果Darwin的XNU内核都是混合的内核,它兼具了宏内核的极致性能,又吸收了微内核的安全性和易拓展等特点。
标签:操作系统,管理,代码,内核,微内核,进程,内存 From: https://blog.51cto.com/u_15812995/9063826