0
点赞
收藏
分享

微信扫一扫

【操作系统】简单了解一下宏内核和微内核


  • 内核有哪些组成部分?
  • 宏内核和微内核的区别是什么?
  • 内核分层的目的是什么?

计算机中资源主要包括软件资源和硬件资源,软件资源可以理解为各种各样的数据,那么硬件资源就是计算器的实际组成部分,主要可以分为下面这些部分:

  • 总线,负责连接其他设备,它是设备工作的基础
  • CPU,中央处理器,负责执行程序和处理数据运算
  • 内存,负责存储运行时的代码和数据
  • 硬盘,负责长久储存用户文件数据
  • 网卡,负责计算机与计算机之间的通信
  • 显卡,负责显示工作
  • 各种I/O设备,显示器,打印机,键盘,鼠标等

内核又可以理解为对系统中软件和硬件资源的管理,从不同的功能角度来说可以划分到下面这些部分:

  • 进程管理,把运行时的程序抽象为进程,控制进程在CPU上的的资源占用情况
  • 内存管理,为程序分配内存,或者释放内存
  • 文件系统,管理用户数据
  • 图形系统,管理显卡,负责显示信息
  • 网络组件,网卡主要负责网络通讯,网络通讯需要各种通信协议,最后在内核中形成了网络协议栈
  • IO管理器,管理显示器,鼠标,键盘等

宏内核

内核部分包含进程管理,内存管理,文件系统,图形系统,网络组件,IO管理器等,把这些部分中所有代码编译,链接在一起,形成一个大的可执行程序。这里很类似于单体架构。

优点:减少了模块之间调用的成本,性能高。

缺点:各个功能模块之间高度耦合,扩展性和移植性差,一个模块出了问题,整个内核的所有组件都可能有问题。

微内核

内核部分的功能要做到精简,不需要太多的功能,仅仅只有进程调度、处理中断、内存空间映射、进程间通信等功能。进程管理、内存管理、设备管理、文件管理等服务功能,做成一个个服务进程。

进程之间通过消息进行通信,这有那种微服务的感觉。

优点:结构挺清晰,系统有良好的一致性,内核代码量少,伸缩性和拓展性都比较好

缺点:进程通讯增加了成本,性能比较差

内核分层

内核中的代码,垂直划分不同的层级,比如把硬件平台相关的代码抽离出来,化作硬件代码层,当移植到不同的硬件平台时,只需要修改这地方的代码即可。

  • 内核实现分层的主要目的和好处在于屏蔽底层细节,使上层开发更加简单。
  • 分层以后可以提高可移植性,

混合架构

混合内核大致是将需要频繁调用的功能放在内核中,提升性能。不会经常使用的功能模块可以放在内核外作为服务运行,这样也不会造成内核过度臃肿。

当前系统内核,Linux是宏内核,Windows和NT内核和苹果Darwin的XNU内核都是混合的内核,它兼具了宏内核的极致性能,又吸收了微内核的安全性和易拓展等特点。

举报

相关推荐

0 条评论