操作系统之微内核架构

与宏内核相反,微内核架构提倡功能尽可能少,只提供进程调度、处理中断、内存映射、进程间通信等功能。微内核架构是不能够提供什么实际功能的,而内存管理、进程管理、设备管理和文件管理服务等,都被做成一个个服务进程,它们和用户进程一样,只是它们能够提供宏内核里边提供的功能。
微内核提供了一种良好的进程间通信机制:消息。应用程序在调用某项服务时,会向微内核发送一个消息,而由微内核再往具体的服务进程发送,接着进程就会完成具体的功能。服务进程的编程模型就是循环处理来自其他进程的消息,完成对应的功能。
为了理解微内核的工程原理,我们来看看微内核提供内存分配功能的服务过程,具体如下:

  1. 应用程序发送内存分配的消息,这个发送消息的函数是微内核提供的,相当于系统 API,微内核的 API(应用程序接口)相当少,极端情况下仅需要两个,一个接收消息的 API 和一个发送消息的 API。
  2. 处理器切换到特权模式,开始运行内核代码。
  3. 微内核代码让当前进程停止运行,并根据消息包中的数据,确定消息发送给谁,分配内存的消息当然是发送给内存管理服务进程。
  4. 内存管理服务进程收到消息,分配一块内存。
  5. 内存管理服务进程,也会通过消息的形式返回分配内存块的地址给内核,然后继续等待下一条消息。
  6. 微内核把包含内存块地址的消息返回给发送内存分配消息的应用程序。
  7. 处理器开始运行用户模式下的应用程序,应用程序就得到了一块内存的首地址,并且可以使用这块内存了。

微内核最明显的缺点就是系统开销大,性能差。因为同一个功能相比于宏内核而言拐了几个弯才能实现。
微内核的优点:

1.功能划分清晰,便于协作开发。
2.系统可移植性好,微内核代码量比较少。
3.微内核有良好的伸缩性和扩展性。

此文章为4月Day 11学习笔记,内容来源于极客时间《操作系统实战 45 讲》。

你可能感兴趣的:(操作系统实战45讲,linux)