混合微内核OS的出现,瞄准哪些物联网应用痛点?
扫描二维码
随时随地手机看文章
物联网设备的类型成千上万,然而其中绝大多数是采用MCU主控的智能边缘。这种设备上同样需要搭载合适的操作系统,与PC和手机等设备不同,这种设备上运行的操作系统必须将实时性放在首位,也就是我们常说的RTOS(Real Time Opera System:实时操作系统)。
宏内核和微内核之外的第三种选择
通常来讲操作系统分为宏内核和微内核两种不同的架构,如下图所示,操作系统中分为了用户域和核心域两个地址空间,微内核架构仅仅保留了最为基础的内核进程管理和内存管理服务;宏内核架构的核心域中运行的应用比微内核架构的多了系统应用程序、通信接口管理等等。
基于两种这种不同的设计理念,也就造就了宏内核与微内核两种截然不同的特性表现:微内核非常易于拓展,添加任何新系统服务,直接将其分配到新的用户地址空间即可,内核空间不需要任何修改;但由于用户域与核心域之间通过信息传递通信,因此这些系统应用服务的速度不如宏内核中直接通过系统调用实现的更快;但同样的因为都在同一个核心域中执行这些应用服务,一旦其中一个失败,整个系统就会崩溃,微内核却可以做到某一应用崩溃却不影响整体的稳定运行。
微内核架构 | 宏内核架构 | |
---|---|---|
尺寸 | 较小 | 更大 |
系统服务执行速度 | 较慢 | 较快 |
可拓展性 | 易于拓展 | 难以拓展 |
安全性 | 服务崩溃会影响到微内核工作 | 服务崩溃则整个系统都将会崩溃 |
代码 | 代码数量较多 | 代码数量较少 |
主流物联网终端的OS最优解
从最近几年MCU厂商的新品发布中,我们不难看出,带图形界面、计算能力增强、无线功能加成等已经逐渐成为趋势,而且MPU的功耗和价格也是日趋亲民化,硬件的演进为产业升级打下了良好基础。现有的操作系统面临着新的挑战,一方面是需要迎合这些更加智能化的需求,另一方面还要保证实时性和资源的合理配置。
如:网关的多种协议间的格式转换、安防需要快速启动、高端处理器的由于带MMU功能复杂,Linux越来越庞大,传统的IoT OS应用与内核编译在一起后维护代价大,容易带来安全性问题。业界需要一款更小、更快、更安全、可维护性更好的软件开发平台,RT-Thread Smart微内核操作系统应运而生!
RT-Thread Smart 定位于成为一个专业的面向实时应用场合的高性能混合微内核操作系统。填补传统 RTOS 和大型操作系统 Linux 之间的空白,在实时性、成本、安全性、启动速度等方面取得最佳的平衡。
RT-Thread Smart的用户态和内核态之间通过共用同一个IPC channel来实现内存的共享,内核实现了尽可能的轻量化,大小仅为500kb;用户态的系统服务支持可拆卸和可重启,每个应用都是一个独立的elf程序,具备独立地址空间,相互之间保证内存隔离。不同的进程之间通过消息句柄来进行数据传输;进程和进程地址同时存在于共享内存空间内,这样减少了数据复制的工作。据熊谱翔先生现场分享,用户在编译的时候可以自己决定哪些服务运行在用户态、哪些运行在内核态。早期的Linux中用户态和内核态都不能相互抢占,而在RT-Thread Smart中支持抢占式调度的方式。
资源大小方面进行对比:RT-Thread Smart的内核504kB,压缩后 217kB, 根文件系统127kB,内存占用1.9MB;Linux的裁剪版压缩后内核3.57MB, 根文件系统5MB ,内存占用17.4MB。
启动时间方面进行对比:宏内核方式(RT-ThreadRT-Thread + 文件系统 + 网络协议栈 + 多媒体)的 启动时间 3 – 5秒;Linux系统:启动时间近5 - 10秒;而RT-Thread Smart的启动时间在500毫秒以内。
在实际应用中差距到底有多大呢?通过一个带图形界面的场景启动速度比对,RT-Thread Smart的启动仅需1.7秒,免除了Linux漫长的启动等待时间。
生态赋予的生命力
站在开源社区与商业的十字路口,RT-Thread 团队选择了社区,RT-Thread创始人熊谱翔宣布RT-Thread Smart 依然开源如故,采用Apache License v2.0,获得现场热烈掌声!做操作系统最重要的就是生态,而RT-Thread在这一方面做到了世界上较为领先的水平。不论是用户规模,还是社区的活跃度,包括各种用户贡献的组件和软件包的数量以及质量,均达到了业界领先 的水准。
熊谱翔先生认为,从开源的角度来让更多合作伙伴/用户来认可RT-Thread是非常重要的,生态对于OS来讲是根本。RT-Thread在生态维护方面非常用心,一直确保可以接收到客户、用户、芯片厂商等多方面的不同的声音,从这些生态中发出的声音中,来挖掘真正的需求点,然后在这些需求点上去进行创新。这些创新的点经过团队孵化出一些成果之后,继续拿到社区上去进行尝试和探索,拿到反馈来进行迭代。这就是目前RT-Thread所实现的一种与生态同栖共生的模式。
据悉,大约在今年10月份用户有望在开源代码托管平台上免费下载RT-Thread Smart。