【快问快答】RT-Thread Smart之混合微内核是什么?

混江龙づ霸主 提交于 2020-10-29 05:22:05



RT-Thread之前写过好几篇文章介绍微内核,然而不少开发者依然不清楚到底微内核操作系统是什么。为此,我们特别整理了5期快问快答,来为大家答疑解惑!



  • RT-Thread Smart称作是混合微内核操作系统,为什么叫混合微内核操作系统呢?

  • RT-Thread Smart和当前的版本及Linux有什么区别?

  • 有什么特色呢,用于什么场景?

  • 资源占用情况如何呢?

  • 效率又是怎么样呢?


且待我们一一解答,今天先来解释RT-Thread Smart混合微内核操作系统是什么。


<插播一句:9月1日RT-Thread将在北京举行发布会发布RT-Thread Smart混合微内核操作系统,欢迎报名来现场交流了解更多信息,观看微内核应用Demo>>




首先来看看这几个概念




PART ONE



什么是宏内核操作系统?


操作系统的特性组件均以内核态运行,而用户程序在用户态运行。比如 Linux 是一种典型的宏内核操作系统,不仅仅内核组件、驱动程序、网络协议栈、文件系统等等均在内核态运行。宏内核操作系统要求在内核态运行的程序代码具备极高的健壮性,否则任何一部分的错误或异常非常容易扩散到整个操作系统,引发系统崩溃等严重问题。


PART TWO



什么是微内核操作系统?


操作系统的内核模块运行在内核态,网络协议栈、文件系统等和用户程序一样运行在用户态。这种操作系统的内核可以做的很小,功能单一简练,比较容易形成稳定的内核。用户态的大型组件即使有发生异常,既不会影响其他进程的运行,也不会导致操作系统内核崩溃。


PART THREE



什么是混合微内核操作系统?

混合微内核操作系统是 睿赛德科技针对目前行业痛点定义的一款新形态的操作系统,支持将系统服务组件或驱动按需纳入内核态中运行,以获得更佳的性能,也支持将系统的大部分系统组件及驱动移到内核之外即用户态,以一个个单独的服务进程运行,内核与服务进程之间通过消息传递完成交互。


这样,从外在看,这种操作系统兼具微内核操作系统的特性,又具备了宏内核的高性能特性,为开发者提供了更多系统性能调优方面的可能


下面用一个通俗的例子来做个比喻解释下微内核和混合微内核:


操作系统内核 - 比喻为总经理在总经理办公室(内核态)


某个进程 A - 比喻为处理工作的职员A,在外面的办公区某个工位(该进程空间)


某个进程 B(用户应用程序或系统服务) - 比喻为处理工作的职员B,在外面的办公区另一个工位(该进程空间)


微内核场景下, 职员A和职员B,分别和总经理交流,分别在不同的工位,即使A发生错误,也不影响B以及总经理的安全,而且此时总经理办公室非常简单,处理的事务也很简单,只负责任务计划(调度)、通信(IPC)、工位分配(内存管理)等,可以做到足够的简单稳定,这些都是微内核特有的优秀属性。


在某些情况下,假设A需要B的服务,则仍旧需要A先敲门进总经理办公室(操作系统中进程间互相访问,需要调用内核机制),再出来,总经理然后把B叫进来,B提供服务,经由总经理转给A。 这期间,A和B与总经理交流都要频繁敲门开门关门(系统调用),会消耗部分资源。如果A对B的服务请求过分频繁,则系统的响应速度会比较低。


此时,如果B能够直接搬进总经理办公室(内核态),如果A需要请求服务,则B就在总经理边上,响应就会变得十分迅速,这就是 某些进程(例如B)可以在用户态执行,也可以按需迁移到内核态(总经理室)运行。这时的内核特性,就是表现为混合微内核,而不是一个纯粹的微内核。


这个比喻不一定恰当,但应该能一定程度帮助我们理解什么是微内核操作系统以及混合微内核操作系统,如有建议请留言探讨。


下一问我们将解答下RT-Thread Smart和Linux、RT-Thread的区别,敬请关注。














你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!




RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。





长按二维码,关注我们

转一转
赞一赞
看一看

本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!